import type { IsAny } from '../any/index.js'; import type { IsOptional } from '../object/index.js'; import type { ArraySetUpdateIt } from './arraySetUpdateIt.js'; import type { DeleteIt, DeleteItIfPresent } from './deleteIt.js'; import type { IncrementIt } from './incrementIt.js'; import type { KeepIt } from './keepIt.js'; import type { ReplaceIt } from './replaceIt.js'; export type PatchFor = IsAny extends true ? any : unknown extends X ? unknown : [ X ] extends [never] ? never : X | KeepIt | ReplaceIt | PatchFor.Nested | (X extends number | bigint ? IncrementIt : never) | (X extends readonly (infer E)[] ? ArraySetUpdateIt : never); export declare namespace PatchFor { type Nested = X extends atomics ? never : X extends object ? keyof X extends never ? never : { [key in keyof X]?: PatchFor | IsOptional; } : never; type DefaultAtomics = Date; } export type $PatchFor = X extends any ? PatchFor : never; //# sourceMappingURL=PatchFor.d.ts.map