import { type MergedMany, type NonMergeable, type Nullable } from "./types.js";
/**
 * Deep merges all arguments into a single object. Objects could have circular references.
 * @param args Array of objects to merge
 * @returns The deeply merged object.
 * @example
 * import merge from "merge-fast";
 * merge([{ a: 1 }, { b: 2 }]); // { a: 1, b: 2 }
 * merge([{ a: 1 }, { a: 2 }]); // { a: 2 }
 */
declare function merge<T extends [...Rest], // → Tuple
Rest extends Params[], RestArrayType extends Rest, MergeableObjectType extends Record<PropertyKey, Params>, MergeableMapType extends Map<Params, Params>, MergeableSet extends Set<Params>, Params extends [...RestArrayType] | MergeableObjectType | MergeableMapType | MergeableSet | NonMergeable<Rest> | Nullable>(args: T): MergedMany<T>;
export default merge;
