import { OnSnapshotListener } from '../node/snapshot/onSnapshot';
import { Dispose } from '../utils/disposable';
export declare const reduxActionType = "applyAction";
/**
 * A redux store for mobx-bonsai.
 */
export interface ReduxStore<T> {
    getState(): T;
    subscribe(listener: OnSnapshotListener<T>): Dispose;
}
/**
 * Generates a redux compatible store out of a mobx-bonsai object.
 *
 * @template T Object type.
 * @param target Root object.
 * @returns A redux compatible store.
 */
export declare function asReduxStore<T extends object>(target: T): ReduxStore<T>;
