import { ExtractBaseMany, ExtractMod, Invert, UnionToIntersection, UpdateFilter } from './types.js'; /** * Filter that matches any update */ export declare const any: UpdateFilter; /** * Invert a filter by applying a NOT logical operation: * `not(fn) = NOT fn` * * > **Note**: This also inverts type modification, i.e. * > if the base is `{ field: string | number | null }` * > and the modification is `{ field: string }`, * > then the negated filter will have * > inverted modification `{ field: number | null }` * * @param fn Filter to negate */ export declare function not(fn: UpdateFilter): UpdateFilter, State>; export declare function and(fn1: UpdateFilter, fn2: UpdateFilter): UpdateFilter; export declare function and(fn1: UpdateFilter, fn2: UpdateFilter, fn3: UpdateFilter): UpdateFilter; export declare function and(fn1: UpdateFilter, fn2: UpdateFilter, fn3: UpdateFilter, fn4: UpdateFilter): UpdateFilter; export declare function and(fn1: UpdateFilter, fn2: UpdateFilter, fn3: UpdateFilter, fn4: UpdateFilter, fn5: UpdateFilter): UpdateFilter; export declare function and(fn1: UpdateFilter, fn2: UpdateFilter, fn3: UpdateFilter, fn4: UpdateFilter, fn5: UpdateFilter, fn6: UpdateFilter): UpdateFilter; export declare function and[]>(...fns: Filters): UpdateFilter, UnionToIntersection>>; export declare function or(fn1: UpdateFilter, fn2: UpdateFilter): UpdateFilter; export declare function or(fn1: UpdateFilter, fn2: UpdateFilter, fn3: UpdateFilter): UpdateFilter; export declare function or(fn1: UpdateFilter, fn2: UpdateFilter, fn3: UpdateFilter, fn4: UpdateFilter): UpdateFilter; export declare function or(fn1: UpdateFilter, fn2: UpdateFilter, fn3: UpdateFilter, fn4: UpdateFilter, fn5: UpdateFilter): UpdateFilter; export declare function or(fn1: UpdateFilter, fn2: UpdateFilter, fn3: UpdateFilter, fn4: UpdateFilter, fn5: UpdateFilter, fn6: UpdateFilter): UpdateFilter;