import { PutEffect, CallEffect, IAction, AllCombinatorEffect, RaceCombinatorEffect, ActionChannelEffect, ActionChannelInput, ITakeEffectDescription, ITakeActionChannelEffectDescription, IActionChannelEffectDescription, DelayEffect } from './types';
export declare class EffectBuilder {
    protected transactionId: string;
    constructor(transactionId: string);
    put: <Payload>(pattern: string, payload?: Payload | undefined) => import("./types").IPutEffectDescription<Payload>;
    take<Payload extends {} | undefined = {}>(input: ActionChannelInput<IAction<Payload>>): ITakeEffectDescription<IAction<Payload>>;
    take<Payload extends {} | undefined = {}>(input: IActionChannelEffectDescription<IAction<Payload>>): ITakeActionChannelEffectDescription<IAction<Payload>>;
    callFn<Fn extends (...args: any[]) => any>(effect: Fn, args?: Parameters<Fn>): ReturnType<CallEffect<Fn>>;
    actionChannel<Payload>(input: Parameters<ActionChannelEffect<Payload>>[0], actionBuffer?: Parameters<ActionChannelEffect<Payload>>[1]): ReturnType<ActionChannelEffect<Payload>>;
    all<Payload>(effects: Parameters<AllCombinatorEffect<Payload>>[0]): ReturnType<AllCombinatorEffect<Payload>>;
    race<Payload>(effects: Parameters<RaceCombinatorEffect<Payload>>[0]): ReturnType<RaceCombinatorEffect<Payload>>;
    delay: <Payload>(delayInMilliseconds: number, payload?: Payload | undefined) => import("./types").IDelayEffectDescription<Payload>;
    private generateTopics;
    private generateTopicStreamObserver;
}
