import { Expand } from "./types/Expand"; import { ValueOf } from "./types/ValueOf"; export declare function count(object: object): number; export type FilterFunc = (key: keyof O & string, value: ValueOf, object: O) => boolean; export declare function filter(object: O, func: (key: keyof O & string, value: ValueOf, object: O) => boolean): Partial; export type GuardFunc> = (value: ValueOf, key: keyof O & string, object: O) => value is G; export declare function guard>(object: O, func: (value: ValueOf, key: keyof O & string, object: O) => value is G): Partial>; export type BlockFunc> = (value: ValueOf, key: keyof O & string, object: O) => value is G; export declare function block>(object: O, func: (value: ValueOf, key: keyof O & string, object: O) => value is G): Partial, G>>>; export type ReduceFunction = (initial: T, key: keyof O & string, value: ValueOf, object: O) => T; export declare function reduce(object: O, func: (initial: T, key: keyof O & string, value: ValueOf, object: O) => T, initial: T): T; export declare function map(object: O, func: (key: keyof O & string, value: ValueOf, object: O) => T): Record; export type RemapFunction = (key: Key, value: O[Key], object: O) => readonly [NewKey, NewValue]; export declare function remap(object: O, func: RemapFunction): Record; export type MapToArrayFunction = (key: keyof O & string, value: ValueOf, object: O) => T; export declare function mapToArray(object: O, func: (key: keyof O & string, value: ValueOf, object: O) => T): T[]; export type ForEachFunction = (key: keyof O & string, value: ValueOf, object: O) => void; export declare function forEach(object: O, func: (key: keyof O & string, value: ValueOf, object: O) => void): void; export declare function deepFreeze(object: O): O; export declare const freezeDeep: typeof deepFreeze; export declare function clear(object: O): void; export declare const empty: typeof clear; export declare function pick(object: O, ...pickKeys: Keys): Expand>; export declare const limit: typeof pick; export declare function omit(object: O, ...omitKeys: Keys): Expand>; export declare function set(object: O, key: K, value: V): Omit & Record; export declare function assign(o: O, p: P): Omit & P;