type PlainObject = Record; type DeepMergeResult = T extends PlainObject ? U extends PlainObject ? { [K in keyof T | keyof U]: K extends keyof U ? (K extends keyof T ? DeepMergeResult : U[K]) : K extends keyof T ? T[K] : never; } : T : U extends PlainObject ? U : T; /** * 深いマージを行う関数 * @param origin - マージ先となる元オブジェクト * @param source - マージするソース(このデータに更新される) * @returns マージされたオブジェクト */ export declare function objDeepMerge, U extends Record>(origin: T, source: U): DeepMergeResult; type DeepArrayToSet = T extends unknown[] ? Set : T extends PlainObject ? { [K in keyof T]: DeepArrayToSet; } : T; /** * オブジェクト内の配列を再帰的にSetに変換する関数 * @param obj - 変換対象のオブジェクト * @returns 変換されたオブジェクト */ export declare function arrayConvertToSet(obj: T): DeepArrayToSet; export {};