import { Action, Reducer } from 'redux'; import { Module } from 'webpack'; interface IEffectObject { [key: string]: (action: any) => IterableIterator; } interface ISagaDataModule> { state: S; effects: IEffectObject; reducers: Record S>; } interface IState { [key: string]: any; } declare type CustomSagaCallBack = () => Record; declare class Saga { mods: Record; effects: IEffectObject; onError: (err: any) => void; constructor(callback?: CustomSagaCallBack); addNamespaces: (mod: ISagaDataModule>, namespace: string) => { reducers: Record>; effects: IEffectObject; state: Record; }; isEffect: (key: string) => boolean; handleAction: (actionType: string, reducer: Reducer, namespaces: string) => (state: IState, action: Action) => any; handleActions: (handlers: Record, initialState: IState, namespace: string) => (state: IState | undefined, action: any) => any; reduceReducers: (...reducers: any[]) => (state: any, action: any) => any; getReducers: () => Reducer<{ [x: string]: any; }, import("redux").AnyAction>; use: (namespace: string, mod: ISagaDataModule>) => void; validateMod: (name: string) => boolean; combineEffects: () => void; create: () => () => IterableIterator>>>; } interface ICreateSagaProps { onError: (err: any) => void; modCallback: CustomSagaCallBack; } export declare const createSaga: (params: Partial) => { saga: Saga | null; sagaMiddleware: import("redux-saga").SagaMiddleware<{}>; run: () => void; }; export {};