import { PluginModule, storeKey, ReactantAction } from 'reactant-module';
import { ReducersMapObject } from 'redux';
declare const LastActionOptions: unique symbol;
export interface ILastActionState<T = any> extends ReactantAction<T> {
    /**
     * sync sequence
     */
    _sequence?: number;
}
export type ILastActionData = Pick<ILastActionState<unknown>, Exclude<keyof ILastActionState, '_inversePatches' | 'state'>>;
export interface ILastActionOptions {
    /**
     * Define a string as LastAction reducer key.
     */
    stateKey?: string;
    /**
     * ignore action tracking
     */
    ignoreAction?: (action: ILastActionData) => boolean;
}
declare class ReactantLastAction extends PluginModule {
    readonly [storeKey]?: any;
    options: ILastActionOptions;
    stateKey: string;
    private _sequence;
    constructor(options: ILastActionOptions);
    beforeCombineRootReducers(reducers: ReducersMapObject): ReducersMapObject;
    set sequence(value: number);
    get sequence(): number;
    get action(): ILastActionData;
}
export { ReactantLastAction as LastAction, LastActionOptions };
//# sourceMappingURL=lastAction.d.ts.map