import { NoInfer } from '../interfaces/helper.types'; import { Clear, ClearArray, ClearObject, ClearObjectArray, Increment, NestedArrayUpdate, NestedUpdate, Pull, PullEach, Push, PushEach, Set } from '../interfaces/update/update.conditions'; import { UpdateCriteria } from '../interfaces/update/update.criteria.interface'; export declare const UpdateWith: { /** * Sets new value. * * NOTE! When setting an object or array of objects, you are stronly encouraged to provide an explicit type `Set`. * This will help Typescript find type errors. */ Set: (value: T) => Set; /** Deletes property (MongoDb, Mocked) or sets to null (SQL). */ Clear: () => Clear; /** Sets empty array. */ ClearArray: () => ClearArray; /** Deletes object property (MongoDb, Mocked) or sets to null (SQL). */ ClearObject: () => ClearObject; /** Sets empty array. */ ClearObjectArray: () => ClearObjectArray; /** * Increments by specified value. If property does not exist, it will not do anything. */ Increment: (value: number) => Increment; /** * Pushes element to array, or creates an array if does not exist. * * NOTE! When pusing an object, you are stronly encouraged to provide an explicit type `Push`. * This will help Typescript find type errors. */ Push: (value: T_1) => Push; /** * Pushes each element to array, or creates an array if does not exist. * * NOTE! When pushing an array of objects, you are stronly encouraged to provide an explicit type `PushEach`. * This will help Typescript find type errors. */ PushEach: (value: T_2[]) => PushEach; /** * Pulls element from array. * * NOTE! When pulling an array of objects, you are stronly encouraged to provide an explicit type `Pull`. * This will help Typescript find type errors. */ Pull: (value: T_3) => Pull; /** * Pulls each element from array. * * NOTE! When pulling an array of objects, you are stronly encouraged to provide an explicit type `PullEach`. * This will help Typescript find type errors. */ PullEach: (value: T_4[]) => PullEach; /** * Updates nested object using criteria. Requires explicit type `NestedUpdate`. * * NOTE! When nested object does not exist, creates new nested object with ONLY updated properties! * This can lead to discrepancies in your domain model. To prevent that, search for nested objects using `Exist()` clause. */ NestedUpdate: (value: UpdateCriteria>) => NestedUpdate>; /** * Updates nested array elements using criteria. Requires explicit type `NestedArrayUpdate`. */ NestedArrayUpdate: (value: UpdateCriteria>) => NestedArrayUpdate>; }; //# sourceMappingURL=update.with.helper.d.ts.map