/** * Configuration Management Utilities * * Provides utilities for managing configuration state with different merge strategies * and proper handling of configuration hierarchies and overrides. * * This utility properly handles: * - Global config → Client config → Temporary overrides hierarchy * - configOverride option from initial client creation * - Different update strategies (merge, replace, temporary) * - Preservation of essential fields during replace operations */ import type { ApiConfig, ConfigUpdateStrategy, ConfigState, ConfigUpdateOptions, ConfigUpdateResult } from '@plyaz/types/api'; /** * Creates a new configuration state with initial config */ export declare function createConfigState(initialConfig: ApiConfig): ConfigState; /** * Applies configuration updates with the specified strategy * * @param state - Current configuration state // eslint-disable-next-line complexity * @param updates - Configuration updates to apply * @param options - Options for how to apply the updates * @returns Result containing updated state and effective configuration */ export declare function applyConfigUpdate(state: ConfigState, updates: Partial, options?: ConfigUpdateOptions): ConfigUpdateResult; /** * Gets the effective configuration by merging base with temporary overrides */ export declare function getEffectiveConfig(state: ConfigState): ApiConfig; /** * Clears temporary overrides from the configuration state */ export declare function clearTemporaryOverrides(state: ConfigState): ConfigUpdateResult; /** * Handles configOverride option from initial client options * * This is specifically for handling the configOverride field in ApiConfig, * which allows initial configuration overrides with a specific strategy. */ export declare function applyConfigOverride(state: ConfigState, configOverride: ApiConfig['configOverride']): ConfigUpdateResult; /** * Gets information about the configuration hierarchy */ export declare function getConfigHierarchy(state: ConfigState, hasGlobalConfig: boolean, initialStrategy?: ConfigUpdateStrategy): { hasGlobalConfig: boolean; hasClientConfig: boolean; hasTemporaryOverrides: boolean; configOverrideStrategy?: ConfigUpdateStrategy; }; /** * Gets a list of field keys that have temporary overrides */ export declare function getActiveOverrideKeys(state: ConfigState): string[] | undefined; /** * Creates a deep copy of configuration to prevent external mutations */ export declare function cloneConfig(config: ApiConfig): ApiConfig; /** * Validates that a configuration update is valid */ export declare function validateConfigUpdate(updates: Partial, options?: ConfigUpdateOptions): { valid: boolean; errors: string[]; }; //# sourceMappingURL=configManager.d.ts.map