type BasePropertyDescriptor = Pick; type PropertyDescriptorTyped = BasePropertyDescriptor & ({ value: T; } | { get: () => T; set?: (value: T) => void; }); type ExtensionMap = { [K in keyof T]: PropertyDescriptorTyped; }; /** Type-safe version of `Object.defineProperties` */ export declare function extendObject(base: T, extensionDescriptorsMap: ExtensionMap): T & TExtension; export {};