import type { Args, Call1W, Fn, Fn1 } from "../HKT"; /** * Omit pairs from an object where the value satisfies the predicate. * * Sig: `(f: (x: unknown) => boolean, o: object) => object` */ export type OmitBy, O extends object> = { [K in keyof O as Call1W extends true ? never : K]: O[K]; }; /** * [Fn] Omit pairs from an object where the value satisfies the predicate. * * Sig: `(f: (x: unknown) => boolean, o: object) => object` */ export default interface OmitByFn extends Fn<[Fn1, object], object> { def: ([f, o]: Args) => OmitBy; }