import { Transform } from "@focuson/lens";
import { FocusOnConfig, FocusOnContext, HasFocusOnDebug } from "@focuson/focuson";
export interface FocusOnSetMainAction<S> {
    type: 'setMain';
    s: S;
    reason: any;
}
export declare function isFocusOnSetMainAction<S>(f: any): f is FocusOnSetMainAction<S>;
export interface FocusOnMassTxsAction<S> {
    type: 'massTxs';
    s: S;
    txs: Transform<S, any>[];
}
export declare function isFocusOnMassTxsAction<S>(f: any): f is FocusOnMassTxsAction<S>;
export declare const FocusOnReducer: any;
export declare const focusOnMiddleware: <S extends HasFocusOnDebug, C extends FocusOnContext<S>, MSGs>(config: FocusOnConfig<S, C, MSGs>, context: C) => (store: any) => (dispatch: any) => (action: any) => Promise<any>;
export declare const makeFocusOnReduxStore: <S extends HasFocusOnDebug, C extends FocusOnContext<S>, MSGs>(config: FocusOnConfig<S, C, MSGs>, context: C) => import("redux").Store<any, import("redux").Action<any>> & {
    dispatch: unknown;
};
export declare function makeLs(store: any, desc: string): import("@focuson/state").LensState<any, any, any>;
