import { Map } from 'immutable'; import { AnyAction, Reducer } from 'redux'; import { AbstractEntity } from '../domain/entities'; import { BaseActionsManager } from './base.action'; import { ErrorAction, RequestAction, ResponseAction } from './actions'; import { EntityDescriptor } from '../domain/descriptors'; import { NgFluxifyConfig } from '../services/ng-fluxify-config.service'; export declare abstract class AbstractReducer { protected entityDescriptor: EntityDescriptor; protected ngFluxifyConfig: NgFluxifyConfig; static readonly ACTION_CREATE: string[]; static readonly ACTION_READ: string[]; static readonly ACTION_READ_ALL: string[]; static readonly ACTION_UPDATE: string[]; static readonly ACTION_DELETE: string[]; static readonly ACTION_RESET: string[]; private state; protected readonly actionsManager: BaseActionsManager; constructor(entityDescriptor: EntityDescriptor, ngFluxifyConfig: NgFluxifyConfig); createReducer(): Reducer; protected startTransaction(action: RequestAction, state: Map): Map; protected finishTransaction(action: ResponseAction, state: Map, entities: T | T[] | any | any[]): Map; protected errorTransaction(action: ErrorAction, state: Map): Map; protected setEntities(state: Map, data: T | T[]): Map; protected setEntity(state: Map, entity: T): Map; protected removeEntities(state: Map, ids: any | any[]): Map; protected removeEntity(state: Map, id: any): Map; protected clearEntities(state: Map): Map; protected handleCustomActions(state: Map, action: AnyAction): Map; protected abstract create(action: ResponseAction): T | T[]; protected abstract read(action: ResponseAction): T | T[]; protected abstract update(action: ResponseAction): T | T[]; protected abstract delete(action: ResponseAction): any | any[]; protected initialize(state: Map): Map; private mutableState; private immutableState; }