import type { ImmutableArray } from "./array.js"; import type { Data } from "./data.js"; /** Allowed types for the "id" property (identifier) for an item. */ export type Identifier = string | number; /** An item object is a data object that includes an "id" identifier property that is either a string or number. */ export type Item = { id: I; } & T; /** Entity or `undefined` to indicate the item doesn't exist. */ export type OptionalItem = Item | undefined; /** Get the identifier from an item object. */ export declare function getIdentifier({ id }: Item): I; /** Get the identifiers from an iterable set item objects. */ export declare function getIdentifiers(entities: Iterable>): Iterable; /** Does a data object or data item object. */ export declare function hasIdentifier(item: T | Item, id: I): item is Item; /** Merge an ID into a set of data to make an `ItemData` */ export declare function getItem(id: I, data: T | Item): Item; /** An array of item data. */ export type Items = ImmutableArray>;