import type { StateReducer } from '../../../libs/cargo-hold'; import type { EntityId, EntityState } from '../entity.types'; import type { EntityReducers } from './entity.types'; import type { EntityAdaptorDeps } from './entity.types.internal'; export declare const sortIfNeeded: >(deps: EntityAdaptorDeps) => (items: Record, idList?: EntityId[]) => EntityId[]; export declare const fromEntityArray: >(deps: EntityAdaptorDeps) => (items: T[]) => Record; export declare const makeCreateState: >(deps: EntityAdaptorDeps) => (initialEntities: T[]) => EntityState; /** * Take an array of items and make a reducer that adds those items to an existing state, * overriding existing ids that collide. * * @param deps * @return */ export declare const makeSetMany: >(deps: EntityAdaptorDeps) => (items: T[]) => StateReducer; /** * Takes an item and makes a reducer that adds that item to an existing state, overriding * the existing id if it exists. * * @param deps * @return */ export declare const makeSetOne: >(deps: EntityAdaptorDeps) => (item: T) => StateReducer; /** * Take an array of items and make a reducer that adds those items to an existing state, * preserving existing ids. * * @param deps * @return */ export declare const makeAddMany: >(deps: EntityAdaptorDeps) => (items: T[]) => StateReducer; /** * Takes an item and makes a reducer that adds that item to an existing state, preserving * the existing id if it exists. * * @param deps * @return */ export declare const makeAddOne: >(deps: EntityAdaptorDeps) => (item: T) => StateReducer; /** * Takes an array of items and replaces the existing state with the incoming state. * * @param deps * @return */ export declare const makeSetAll: >(deps: EntityAdaptorDeps) => (items: T[]) => StateReducer; /** * Removes all entities and state ids. * * @param deps * @return */ export declare const makeRemoveAll: >(deps: EntityAdaptorDeps) => () => StateReducer; /** * Takes an array of entity ids and returns a reducer that removes those ids if they exist. * * @param deps * @return */ export declare const makeRemoveMany: >(deps: EntityAdaptorDeps) => (ids: EntityId[]) => StateReducer; /** * Takes an entity id, returns a reducer that removes it if it exists. * * @param deps * @return */ export declare const makeRemoveOne: >(deps: EntityAdaptorDeps) => (id: EntityId) => StateReducer; /** * Returns a full suite of reducers applying the given dependencies. * * @param deps * @return */ export declare const makeReducers: >(deps: EntityAdaptorDeps) => EntityReducers;