/**
 * This file is part of the MedSafe application which is commercial software created by MedVision360 B.V.
 * The source code is proprietary and confidential.
 *
 * Unauthorized copying of this file, via any medium is strictly prohibited.
 *
 * Copyright (c) by MedVision360 B.V. All rights reserved.
 *
 * For the application name: io.medrecord.medsafe
 */
import { OnDestroy } from '@angular/core';
import { Action, ActionReducer } from '@ngrx/store';
import { AbstractActions } from './abstract-actions';
export declare abstract class AbstractReducer<T> implements OnDestroy {
    protected actions: AbstractActions;
    private storeName;
    protected initialState: T;
    protected INIT: string;
    protected handlers: any;
    protected rawHandlers: any;
    protected isRegistered: boolean;
    selectAll: () => import("rxjs").Observable<unknown>;
    constructor(actions: AbstractActions, storeName: string, initialState: T, rehydrate?: boolean);
    protected rehydrate(): any;
    registerReducer(): void;
    getReducer(): ActionReducer<T, Action>;
    protected createSelector(store: string, selector: any): import("@ngrx/store").MemoizedSelector<any, unknown, import("@ngrx/store").DefaultProjectorFn<unknown>>;
    protected selectState(name: string): (state: any) => any;
    protected select(exec: (...args: any[]) => any): any;
    protected addHandler(sourceAction: any | string, exec: (...args: any[]) => any): void;
    protected initRawHandlers(): void;
    ngOnDestroy(): void;
}
