import { CometChatSettingsInterface } from '../CometChatSettings';
/**
 * Recursively merges API settings with default settings.
 *
 * Rules:
 * - If a key exists in API response (even if false or null), use the API value
 * - If a key is undefined or missing in API response, use the default value
 * - For nested objects, recursively apply the same merge logic
 * - For arrays, use API value if present, otherwise use default
 *
 * @param apiSettings - Settings from the API (may be partial)
 * @param defaultSettings - Complete default settings
 * @returns Merged settings object with all required keys
 */
export declare function mergeWithDefaults<T extends Record<string, unknown>>(apiSettings: Partial<T> | undefined, defaultSettings: T): T;
/**
 * Merges API builder settings with default CometChat settings.
 * Ensures all required keys and nested properties are present.
 *
 * @param apiSettings - Partial settings from the API
 * @param defaultSettings - Complete default CometChatSettings
 * @returns Complete CometChatSettingsInterface with all required keys
 */
export declare function mergeBuilderSettings(apiSettings: Partial<CometChatSettingsInterface> | undefined, defaultSettings: CometChatSettingsInterface): CometChatSettingsInterface;
