import * as E from 'redux-saga/effects'; import { Matcher } from './matchers'; type ProviderNext = Object; // taken frm flow definitions in /decl type ProviderNextF = () => ProviderNext; // taken frm flow definitions in /decl export type StaticProvider = [E.Effect | Matcher, any]; /** Dynamic provider that gets an effect descriptor and next as parameters and returns a value. */ export type EffectProvider = (effect: EffectDescriptor, next: ProviderNextF) => any; export type EffectProviders = { actionChannel?: EffectProvider; all?: EffectProvider>; call?: EffectProvider>; cancel?: EffectProvider; cancelled?: EffectProvider; cps?: EffectProvider>; flush?: EffectProvider>; fork?: EffectProvider>; getContext?: EffectProvider; join?: EffectProvider; put?: EffectProvider>; race?: EffectProvider>; select?: EffectProvider; setContext?: EffectProvider>; spawn?: EffectProvider>; take?: EffectProvider>; }; export const composeProviders: Function; export function dynamic(effect: EffectProvider): any; export function throwError(error?: Error): any;