import { Collection } from '../types'; export type { Collection, RefsCounter } from '../types'; export declare function createCollection(idFieldName: K, items?: ITEM[]): Collection; export declare const collectionFieldsSet: Set; export declare function isCollection(item: object): item is Collection; export declare function purgeCollection(collection: Collection): Collection; export declare function addItem(collection: Collection, newItem: ITEM): Collection; /** * Batch add function * @param collection - The collection to add items to * @param newItems - Array of items to add * @returns New collection with items added (or original if no items were added) */ export declare function addItems(collection: Collection, newItems: ITEM[]): Collection; export declare function addItemAt(collection: Collection, index: number, newItem: ITEM): Collection; export declare function addItemAndCountRef(collection: Collection, newItem: ITEM, index?: number): Collection; export declare function upsertItem(collection: Collection, updatedItem: ITEM): Collection; export declare function upsertItemAndCountRef(collection: Collection, newItem: ITEM): Collection; export declare function updateItem(collection: Collection, updatedItem: Partial): Collection; export declare function replaceItem(collection: Collection, originalItemId: ITEM[K] & string, updatedItem: ITEM): Collection; export declare function replaceItems(collection: Collection, replaceTuples: Array<[originalItemId: ITEM[K] & string, updatedItem: ITEM]>): Collection; export declare function removeItem(collection: Collection, itemId: ITEM[K]): Collection; export declare function increaseRefsCount(collection: Collection, itemId: ITEM[K]): Collection; export declare function decreaseRefsCount(collection: Collection, itemId: ITEM[K]): Collection; export declare function filterCollection(collection: Collection, filterFunction: (item: ITEM) => item is ITEM): Collection; export declare function deduplicateCollection(collection: Collection): Collection; export declare function getItem(collection: Collection, itemId: ITEM[K] & string): ITEM | undefined; export declare function getLastItem(collection: Collection): ITEM | undefined; export declare function getItemIndex(collection: Collection, itemId: ITEM[K]): number; export declare function getItems(collection: Collection): ITEM[]; export declare function findItem(collection: Collection, findFunction: (item: ITEM) => boolean): ITEM | undefined; export declare function findLastItem(collection: Collection, findFunction: (item: ITEM) => boolean): ITEM | undefined; export declare function filterItems(collection: Collection, filterFunction: (item: ITEM) => item is T): T[]; export declare function getRefsCount(collection: Collection, itemId: ITEM[K] & string): number; //# sourceMappingURL=collection-utils.d.ts.map