import { IAction, IBaseSagaContext, IEffectDescription, Saga, Middleware } from './types';
import { ConsumerPool } from './consumer_pool';
import { ThrottledProducer } from './throttled_producer';
export declare class SagaRunner<InitialActionPayload, Context extends IBaseSagaContext> {
    private consumerPool;
    private throttledProducer;
    protected runEffectWithMiddleware: <EffectDescription extends IEffectDescription>(effect: EffectDescription, context: Context) => Promise<any>;
    constructor(consumerPool: ConsumerPool, throttledProducer: ThrottledProducer, middlewares?: Array<Middleware<IEffectDescription, Context>>);
    runSaga: (initialAction: IAction<InitialActionPayload>, context: Context, saga: Saga<InitialActionPayload, Context>) => Promise<any>;
    runEffect: <EffectDescription extends IEffectDescription>(effectDescription: EffectDescription, context: Context) => Promise<any>;
    protected runGeneratorFsm<Returned = any | undefined>(machine: Generator, context: Context, { previousGeneratorResponse, didThrow }?: {
        previousGeneratorResponse: any;
        didThrow: boolean;
    }): Promise<Returned>;
}
