import { Get } from 'type-fest';
import { HasNestedPath, ObjectLiteral } from '../types/common';
/** Get a nested property value from a dot-delimited path. */
export declare function getNested<Path extends string, From extends ObjectLiteral, Return = HasNestedPath<Path> extends 1 ? From[Path] : Get<From, Path>>(obj: From, path: Path): Return;
/** Pick given properties in object */
export declare function pick<T extends ObjectLiteral, K extends keyof T>(obj: T, paths: K[]): Pick<T, K>;
/**
 * Deep merge two or more objects/arrays recursively.
 * Arrays are concatenated, objects are merged recursively.
 * Later arguments take precedence over earlier ones.
 * Returns a new object/array without mutating the originals.
 */
export declare function deepMerge<T>(source: T, ...sources: Partial<T>[]): T;
