import { ForkEffect } from 'redux-saga/effects'; export declare type ITakeType = (...args: any[]) => ForkEffect; export declare type IEffect = (...args: any[]) => Generator; export interface IEffectItem { takeType: ITakeType; effect: IEffect; } export declare type IDefinition = IEffect | IEffectItem; export declare type IArgsAction = { type: string; args: Args; }; export declare type IActionCreator any> = (...args: Parameters) => IArgsAction>; export declare type IAction = D extends IEffectItem ? IActionCreator : D extends IEffect ? IActionCreator : never; export declare type IActions> = { [K in keyof D]: IAction; }; export declare type IDefinitions = Record; export declare type IFlattenDefinitions> = { [K in keyof D]: D[K] extends IEffect ? D[K] : D[K] extends IEffectItem ? D[K]['effect'] : never; }; export declare type IConstants> = Record; export interface IDefinitionObject { actionKey: string; name: string; takeType?: ITakeType; effect: IEffect; } export interface IDefinitionObjectWithModule extends IDefinitionObject { moduleName: string; } export declare type IDefinitionObjects> = Record;