type ObjectIterator = (value: T[keyof T], key: string, collection: T) => R; type ObjectIteratorTypeGuard = (value: T[keyof T], key: string, collection: T) => value is U; export type { ObjectIterator, ObjectIteratorTypeGuard };