/** * Unified API Strategies * Combines individual strategies from different domains into convenient presets * * @module strategies/unified */ import type { UnifiedStrategyName, UnifiedStrategy, UnifiedStrategyConfig } from '@plyaz/types/api'; export type { UnifiedStrategyName, UnifiedStrategy, UnifiedStrategyConfig } from '@plyaz/types/api'; /** * Unified strategies composed from individual domain strategies * These are convenience presets - individual strategies remain the source of truth * * @example * ```typescript * import { createApiClient, unifiedStrategies } from '@plyaz/api'; * * // Use unified strategy * const api = createApiClient({ strategy: 'interactive' }); * * // Or apply strategy configuration directly * const config = applyUnifiedStrategy('background'); * ``` */ export declare const unifiedStrategies: Readonly>; /** * Apply unified strategy configuration * Resolves strategy names to actual configuration objects * * @param strategyName - Unified strategy name * @returns Combined configuration from all domain strategies * * @example * ```typescript * const config = applyUnifiedStrategy('interactive'); * // Returns combined cache, retry, and polling configurations * ``` */ export declare function applyUnifiedStrategy(strategyName: UnifiedStrategyName): UnifiedStrategyConfig; /** * Get unified strategy by name with fallback * * @param name - Strategy name * @returns Strategy configuration or 'interactive' as fallback */ export declare function getUnifiedStrategy(name: UnifiedStrategyName): UnifiedStrategy; /** * Merge unified strategy with overrides * Allows overriding specific domains while keeping others from unified strategy * * @param strategyName - Base unified strategy name * @param overrides - Domain-specific overrides * @returns Merged strategy configuration * * @example * ```typescript * // Start with interactive strategy, but use aggressive retry * const config = mergeUnifiedStrategy('interactive', { * retry: 'aggressive' * }); * ``` */ export declare function mergeUnifiedStrategy(strategyName: UnifiedStrategyName, overrides?: Partial): UnifiedStrategy; /** * Type guard to check if a value is a unified strategy name */ export declare function isUnifiedStrategyName(value: unknown): value is UnifiedStrategyName; /** * Get all available unified strategy names */ export declare function getUnifiedStrategyNames(): UnifiedStrategyName[]; /** * Create a custom unified strategy * * @param name - Custom strategy name * @param config - Strategy configuration * @returns Custom strategy configuration * * @example * ```typescript * const customStrategy = createCustomUnifiedStrategy('fastApi', { * cache: 'shortLived', * retry: 'conservative' * }); * ``` */ export declare function createCustomUnifiedStrategy(name: string, config: UnifiedStrategy): Record; //# sourceMappingURL=unified.d.ts.map