/**
 * 设置对象深层属性的值（类似 Lodash 的 _.set）
 * @param obj 目标对象
 * @param path 属性路径（字符串或数组，如 'a.b.c' 或 ['a', 'b', 'c']）
 * @param value 要设置的值
 * @returns 修改后的对象
 * @example
 * ```ts
 * // 字符串路径
 * setWithString({}, 'a.b.c', 1);
 * // { a: { b: { c: 1 } } }
 *
 * // 数组路径
 * setWithString({}, ['a', 'b', 'c'], 'x');
 * // { a: { b: { c: 'x' } } }
 *
 * // 数组下标语法 'a[0].b'
 * setWithString({}, 'a[0].b', 'y');
 * // { a: [{ b: 'y' }] }
 *
 * // 已有对象上覆盖/扩展
 * setWithString({ a: { b: 1 } }, 'a.c', 2);
 * // { a: { b: 1, c: 2 } }
 * ```
 */
export declare function setWithString<T extends object>(obj: T, path: string | Array<string | number>, value: any): T;
