/** * Pick object properties where the value is of a type. * * @group Utils * @category Object */ export type PickByValue = Pick; /** * Returns true if `x` is an object and not `null`. * * @group Utils * @category Object */ export declare function isNonNullObject(x: unknown): x is Record; /** * Returns true if `x` is `ArrayLike`. * * @group Utils * @category Object */ export declare function isArrayLike(x: unknown): x is ArrayLike; /** * @group Utils * @category Object */ export declare function isIterable(x: unknown): x is Iterable; /** * @group Utils * @category Object */ export declare function isAsyncIterable(x: unknown): x is AsyncIterable; /** * @group Utils * @category Object */ export declare function isIteratorOrAsyncIterator(x: unknown): x is Iterator | AsyncIterator; /** * Makes keys required, if they're not already. * * @group Utils * @category Object */ export type RequiredProps = Type & { [K in Key]-?: Type[K]; }; /** * Override methods on an object. * * @example * ``` * const obj = { * foo: () => 'foo', * bar: () => 'bar', * } * * const obj2 = overrideObject(obj, { * foo: (obj) => obj.foo().reverse() * }) * * console.info(obj2.bar()) * // 'bar' * console.info(obj2.foo()) * // 'oof' * ``` */ export declare function overrideObject(target: T, methods: Partial>): T; export type MethodOverrides = { [K in keyof T as T[K] extends (...args: any[]) => unknown ? K : never]: T[K] extends (...args: any[]) => unknown ? (target: T, ...args: Parameters) => ReturnType : never; }; //# sourceMappingURL=Object.d.ts.map