import type { PlainObject } from './helpers/isPlainObject.js'; import type { KeysParam, KeyUnion, SetToNever } from './helpers/utility-types.js'; import tspo from './tspo.js'; /****************************************************************************** Types ******************************************************************************/ type CollapseType = { [K in keyof T]: T[K]; } & {}; type Append = (obj: T, addOn: U) => asserts obj is CollapseType; type AddEntry = (obj: T, entry: [K, V]) => asserts obj is CollapseType>; type Remove = >(obj: T, keys: K) => asserts obj is CollapseType>>; /****************************************************************************** Constants ******************************************************************************/ declare const typedTspo: Readonly & { readonly append: Append; readonly addEntry: AddEntry; readonly remove: Remove; }; /****************************************************************************** Export ******************************************************************************/ export { type OmitNever } from './helpers/utility-types.js'; export default typedTspo;