| import {ConditionalKeys} from './conditional-keys'; | 
|   | 
| /** | 
| Pick keys from the shape that matches the given `Condition`. | 
|   | 
| This is useful when you want to create a new type from a specific subset of an existing type. For example, you might want to pick all the primitive properties from a class and form a new automatically derived type. | 
|   | 
| @example | 
| ``` | 
| import {Primitive, ConditionalPick} from 'type-fest'; | 
|   | 
| class Awesome { | 
|     name: string; | 
|     successes: number; | 
|     failures: bigint; | 
|   | 
|     run() {} | 
| } | 
|   | 
| type PickPrimitivesFromAwesome = ConditionalPick<Awesome, Primitive>; | 
| //=> {name: string; successes: number; failures: bigint} | 
| ``` | 
|   | 
| @example | 
| ``` | 
| import {ConditionalPick} from 'type-fest'; | 
|   | 
| interface Example { | 
|     a: string; | 
|     b: string | number; | 
|     c: () => void; | 
|     d: {}; | 
| } | 
|   | 
| type StringKeysOnly = ConditionalPick<Example, string>; | 
| //=> {a: string} | 
| ``` | 
| */ | 
| export type ConditionalPick<Base, Condition> = Pick< | 
|     Base, | 
|     ConditionalKeys<Base, Condition> | 
| >; |