type MethodPatch = T[K] extends (...args: any[]) => any ? (original: T[K], ...args: Parameters) => ReturnType : never; type PropertyPatch = T[K]; type DescriptorPatch = PropertyDescriptor; type PatchConfig = { [K in keyof T]?: MethodPatch | PropertyPatch | DescriptorPatch; }; export declare function safeStrictBatchPatch(target: T, patches: PatchConfig): void; export {};