import { Dependency, ImmediateEffect, ImmediateEffectDefinition, ImmediateEffectHandler, IsEffect, ObservableEffect, ObservableEffectDefinition, ObservableEffectHandler, PromiseEffect, PromiseEffectDefinition, PromiseEffectHandler } from './effect';
declare type EffectExtras = {
    type: string;
    params?: any;
};
export declare type EffectConfig<TDeps extends Dependency[], TResult> = IsEffect & (ObservableEffect<TDeps, TResult> | PromiseEffect<TDeps, TResult> | ImmediateEffect<TDeps>) & Partial<EffectExtras>;
export declare type EffectDefinition<TDeps extends Dependency[], TResult> = ObservableEffectDefinition<TDeps, TResult> | PromiseEffectDefinition<TDeps, TResult> | ImmediateEffectDefinition<TDeps>;
export declare type EffectHandler<TResult> = ObservableEffectHandler<TResult> | PromiseEffectHandler<TResult> | ImmediateEffectHandler;
export {};
