/**
 * Responsible for observing
 * and notifying store listeners
 * with provided paths
 */
import { State } from '../reducers';
import { SelectorFn } from '../selectors';
export declare type TStateChangeHandler<S extends State, T> = (newValue: T, oldValue: T, observer: StateObserver<S, T>) => any;
export declare class StateObserver<S extends State, T> {
    private selector;
    private handler;
    /**
     * Last value received
     */
    private cachedValue;
    /**
     * Flags when the observer has been removed
     *
     * @type {boolean}
     */
    removed: boolean;
    constructor(selector: SelectorFn<S, T>, handler: TStateChangeHandler<S, T>);
    onChange(state: S): boolean;
}
export default StateObserver;
