/**
 * Recursively merge properties from source objects into the target object, mutating it.
 *
 * Nested plain objects are merged recursively, arrays are merged by index (e.g., `[1, 2]` + `[3]` → `[3, 2]`),
 * and class instances (Date, RegExp, custom classes) are assigned by reference. Circular references are
 * detected via ancestor-chain tracking and safely skipped, while shared (non-circular) object references
 * are merged correctly. Prototype pollution attempts (`__proto__`, `constructor`) are also skipped.
 *
 * @example
 * ```typescript
 * import { deepMerge } from '@aws-lambda-powertools/commons';
 *
 * const target = { a: 1, nested: { x: 1 } };
 * const source = { b: 2, nested: { y: 2 } };
 * const result = deepMerge(target, source);
 * // result === target === { a: 1, b: 2, nested: { x: 1, y: 2 } }
 * ```
 *
 * @param target - The target object to merge into (mutated)
 * @param sources - One or more source objects to merge from
 */
declare const deepMerge: <T extends Record<string, unknown>>(target: T, ...sources: Array<Record<string, unknown> | undefined | null>) => T;
export { deepMerge };
//# sourceMappingURL=deepMerge.d.ts.map