import type { RevalidationConfig, RevalidationStrategyName } from '@plyaz/types/api'; /** * Pre-configured revalidation strategies with deduplication * These are configuration options, not implementations * * Based on fetchff best practices for different data volatility levels */ export declare const revalidationStrategies: Readonly>; /** * Generic use case presets * These provide semantic naming for common application patterns * Can be extended with custom presets via extendPresets() */ export declare const genericPresets: { readonly dashboard: RevalidationConfig; readonly chat: RevalidationConfig; readonly notifications: RevalidationConfig; readonly analytics: RevalidationConfig; readonly feed: RevalidationConfig; readonly content: RevalidationConfig; readonly profile: RevalidationConfig; readonly settings: RevalidationConfig; readonly documentation: RevalidationConfig; readonly assets: RevalidationConfig; readonly config: RevalidationConfig; readonly pwa: RevalidationConfig; readonly mobile: RevalidationConfig; }; /** * Get all current presets * * @returns Current preset registry */ export declare function getPresets(): Readonly>; /** * Extend presets with custom configurations * * @param customPresets - Custom preset configurations * @returns Updated preset registry * * @example * extendPresets({ * ecommerce: revalidationStrategies.balanced, * tradingPlatform: revalidationStrategies.realtime, * socialMedia: { ...revalidationStrategies.aggressive, dedupeTime: 500 } * }); */ export declare function extendPresets(customPresets: Record): Readonly>; /** * Reset presets to generic defaults * Useful for testing or cleanup */ export declare function resetPresets(): void; /** * Get a preset by name * * @param name - Preset name * @returns Preset configuration or undefined */ export declare function getPreset(name: string): RevalidationConfig | undefined; /** * Create custom revalidation strategy * * @param options - Partial revalidation configuration * @returns Complete revalidation configuration with defaults * * @example * const customStrategy = createRevalidationStrategy({ * refetchOnFocus: true, * staleTime: 120 * }); */ export declare function createRevalidationStrategy(options: Partial): RevalidationConfig; /** * Get a specific strategy with type safety * * @param name - Strategy name to retrieve * @returns The strategy configuration * * @example * const strategy = getRevalidationStrategy('realtime'); */ export declare function getRevalidationStrategy(name: RevalidationStrategyName): RevalidationConfig; /** * Apply revalidation strategy by name or config * * @param strategy - Strategy name, config object, or false to disable * @returns Revalidation configuration or undefined * * @example * const config = applyRevalidationStrategy('realtime'); * const custom = applyRevalidationStrategy({ refetchOnFocus: true }); * const disabled = applyRevalidationStrategy(false); */ export declare function applyRevalidationStrategy(strategy: RevalidationConfig | RevalidationStrategyName | false): RevalidationConfig | undefined; /** * Check if a strategy name is valid * * @param name - Strategy name to check * @returns True if valid strategy name */ export declare function isValidStrategyName(name: string): name is RevalidationStrategyName; /** * Merge multiple revalidation strategies (last wins) * * @param configs - Revalidation configurations to merge * @returns Merged configuration * * @example * const merged = mergeRevalidationStrategies( * revalidationStrategies.balanced, * { refetchOnFocus: false } * ); */ export declare function mergeRevalidationStrategies(...configs: (RevalidationConfig | undefined)[]): RevalidationConfig; //# sourceMappingURL=strategies.d.ts.map