/** * Performance Optimization Module * Comprehensive performance optimization for API operations * * @module performance */ export type { PerformanceConfig, PerformancePresetName, DataPatternType, PerformanceOption, PerformanceTiming, RequestPerformance, ApiPerformanceMetrics, } from '@plyaz/types/api'; export { performancePresets } from './presets'; export { dataPatternConfigs, getDataPatternConfig, detectDataPattern } from './patterns'; export { getConnectionType, getAdaptiveConfig, setupConnectionMonitoring, getAdaptiveBatchSize, getAdaptivePageSize, shouldPrefetch, shouldUseProgressive, } from './adaptive'; export { PerformanceMonitor, performanceMonitor, formatMetrics, logMetrics, } from './performanceMonitor'; export { applyPerformancePreset, applyDataPattern, resolvePerformanceOption, getOptimizedConfig, mergePerformanceConfigs, getBundleSizeOptimizedConfig, calculateOptimalCacheTime, calculateOptimalDedupeTime, getPerformanceRecommendation, shouldOptimize, isPerformanceFetchResponse, isPerformanceRequestConfig, isPerformanceResponseError, } from './utils'; /** * Quick setup for common use cases */ export declare const quickSetup: { /** * Setup for mobile app */ readonly mobile: () => { enableMetrics: boolean; enableAdaptive?: boolean; enableProgressive?: boolean; maxCacheSize?: number; compressionThreshold?: number; cacheTime?: number; staleTime?: number; dedupeTime?: number; strategy?: string; retry?: unknown; cancellable?: boolean; skipCache?: boolean; cacheErrors?: boolean; refetchOnFocus?: boolean; refetchOnReconnect?: boolean; immediate?: boolean; timeout?: number; flattenResponse?: boolean; }; /** * Setup for desktop app */ readonly desktop: () => { enableMetrics: boolean; enableAdaptive?: boolean; enableProgressive?: boolean; maxCacheSize?: number; compressionThreshold?: number; cacheTime?: number; staleTime?: number; dedupeTime?: number; strategy?: string; retry?: unknown; cancellable?: boolean; skipCache?: boolean; cacheErrors?: boolean; refetchOnFocus?: boolean; refetchOnReconnect?: boolean; immediate?: boolean; timeout?: number; flattenResponse?: boolean; }; /** * Setup for PWA */ readonly pwa: () => { enableMetrics: boolean; enableProgressive: boolean; enableAdaptive?: boolean; maxCacheSize?: number; compressionThreshold?: number; cacheTime?: number; staleTime?: number; dedupeTime?: number; strategy?: string; retry?: unknown; cancellable?: boolean; skipCache?: boolean; cacheErrors?: boolean; refetchOnFocus?: boolean; refetchOnReconnect?: boolean; immediate?: boolean; timeout?: number; flattenResponse?: boolean; }; /** * Setup for real-time app */ readonly realtime: () => { enableMetrics: boolean; enableAdaptive?: boolean; enableProgressive?: boolean; maxCacheSize?: number; compressionThreshold?: number; cacheTime?: number; staleTime?: number; dedupeTime?: number; strategy?: string; retry?: unknown; cancellable?: boolean; skipCache?: boolean; cacheErrors?: boolean; refetchOnFocus?: boolean; refetchOnReconnect?: boolean; immediate?: boolean; timeout?: number; flattenResponse?: boolean; }; /** * Setup for static site */ readonly static: () => { enableMetrics: boolean; enableAdaptive?: boolean; enableProgressive?: boolean; maxCacheSize?: number; compressionThreshold?: number; cacheTime?: number; staleTime?: number; dedupeTime?: number; strategy?: string; retry?: unknown; cancellable?: boolean; skipCache?: boolean; cacheErrors?: boolean; refetchOnFocus?: boolean; refetchOnReconnect?: boolean; immediate?: boolean; timeout?: number; flattenResponse?: boolean; }; }; //# sourceMappingURL=index.d.ts.map