import { SetState } from 'zustand'; import StatusEnum from '../constants/StatusEnum'; export type { EntityStateType } from '../models/entity-state'; export declare type Comparer = (a: TModel, b: TModel) => number; export declare type EntityId = number | string; export declare type Action = void> = (...args: TArguments) => TReturn; export declare type SetAction = void> = (set: SetState) => Action; export declare type Selector = TArguments extends undefined[] ? (appState: TAppState) => TReturnType : (...args: TArguments) => (appState: TAppState) => TReturnType; export declare type SliceSelectors> = Record>> = { selectSliceState: Selector; selectActions: (state: TAppState) => TActionsState; }; export declare type MetaSliceSelectors = { selectLastModified: Selector; }; export declare type AsyncMetaSliceSelectors = MetaSliceSelectors & { selectLastHydrated: Selector; selectError: Selector; selectStatus: Selector; }; export declare type SliceStateActions = { reset: Action; }; export declare type SliceSetActions = { reset: SetAction; }; export declare type AsyncSliceStateActions = SliceStateActions & { setError: Action<[TError]>; setStatus: Action<[StatusEnum]>; }; export declare type AsyncSliceSetActions = SliceSetActions & { setError: SetAction; setStatus: SetAction; }; export declare type SelectIdMethod = (model: TEntity) => EntityId;