import { identity } from './function'; export type Rec = Record; export declare function prop(): typeof identity; export declare function prop(a: '' | null | false | undefined | 0): typeof identity; export declare function prop(key?: K): (obj: O) => O extends object ? (K extends keyof O ? O[K] : undefined) : O; export declare const strProp: (key?: K) => (o: O) => string; export declare const transform: (obj: Record, trans: (entries: [Extract, V][]) => Iterable) => { [key in RK]: RV; }; export declare const omit: (keys: K) => (obj: T) => Omit; export declare const props: (keys: K[]) => (obj: T) => { [key in K & keyof T]: T[key]; }; type Merge = { [key in Exclude]: T1[key]; } & { [key in Exclude]: T2[key]; } & { [key in keyof T1 & keyof T2]: T1 extends Rec ? T2 extends Rec ? Merge : T2[key] : T2[key]; }; export declare const isObject: (obj: unknown) => obj is object; export declare function merge(a1: T1, a2: T2, a3: T3): Merge, T3>; export declare function merge(a1: T1, b2: T2): Merge; export declare function merge(...objs: Rec[]): Rec; export {};