import { AnyArray } from './_types';
declare type IsPickKey<T extends {
    [k: string]: unknown;
}, Keys extends string> = Keys extends keyof T ? 'ON' : 'OFF';
/**
 * Creates an object composed of the picked `object` properties.
 * @param object the target object
 * @param names the properties names
 * @signature R.pick(object, [prop1, prop2])
 * @example
 *    P.pick({ a: 1, b: 2, c: 3, d: 4 }, ['a', 'd']) // => { a: 1, d: 4 }
 * @example
 *    P.pipe({ a: 1, b: 2, c: 3, d: 4 }, R.pick(['a', 'd'])) // => { a: 1, d: 4 }
 * @data_first
 * @category Object
 */
export declare function pick<T extends {}, Q extends string>(object: T, names: AnyArray<Q>): IsPickKey<T, Q> extends 'ON' ? {
    [k in Q]: T[k];
} : {
    [k in keyof T]?: T[k];
};
export declare function pick<T extends {}, K extends keyof T>(object: T, names: readonly K[]): {
    [k in K]: T[k];
};
export declare function pick<T extends {}, Q extends string>(names: readonly Q[]): (object: T) => IsPickKey<T, Q> extends 'ON' ? {
    [k in Q]: T[k];
} : {
    [k in keyof T]?: T[k];
};
export {};
//# sourceMappingURL=pick.d.ts.map