import type { RevalidationConfig } from '@plyaz/types/api'; /** * Get SSR-safe revalidation configuration * Disables browser-specific features in server environment * * @param config - Original revalidation configuration * @returns SSR-safe configuration * * @example * const safeConfig = getSSRSafeConfig({ * refetchOnFocus: true, * refetchOnReconnect: true * }); * // On server: { refetchOnFocus: false, refetchOnReconnect: false } * // On client: { refetchOnFocus: true, refetchOnReconnect: true } */ export declare function getSSRSafeConfig(config: RevalidationConfig): RevalidationConfig; /** * Check if revalidation features are supported * * @returns True if browser supports focus/online events */ export declare function isRevalidationSupported(): boolean; /** * Calculate effective cache duration based on config * * @param config - Revalidation configuration * @returns Total cache duration in milliseconds */ export declare function calculateCacheDuration(config: RevalidationConfig): number; /** * Determine if data should be considered fresh * * @param lastFetchTime - Timestamp of last fetch * @param staleTime - Stale time in seconds * @returns True if data is still fresh */ export declare function isDataFresh(lastFetchTime: number, staleTime: number): boolean; /** * Determine if cache is still valid * * @param lastFetchTime - Timestamp of last fetch * @param cacheTime - Cache time in seconds * @returns True if cache is still valid */ export declare function isCacheValid(lastFetchTime: number, cacheTime: number): boolean; /** * Create a revalidation key for deduplication * * @param url - Request URL * @param params - Request parameters * @returns Unique key for the request */ export declare function createRevalidationKey(url: string, params?: Record): string; /** * Check if request is within deduplication window * * @param lastRequestTime - Timestamp of last request * @param dedupeTime - Deduplication window in milliseconds * @returns True if within deduplication window */ export declare function isWithinDedupeWindow(lastRequestTime: number, dedupeTime: number): boolean; /** * Get optimal revalidation config based on network conditions * * @param baseConfig - Base revalidation configuration * @returns Optimized configuration for current network */ export declare function getNetworkOptimizedConfig(baseConfig: RevalidationConfig): RevalidationConfig; /** * Convert our revalidation config to fetchff format * Maps our naming conventions to fetchff's expected properties * * @param config - Our revalidation configuration * @returns fetchff-compatible configuration */ export declare function toFetchffRevalidationConfig(config: RevalidationConfig): Record; //# sourceMappingURL=utils.d.ts.map