import { OnModuleInit } from '@nestjs/common';
import { WorkflowDefinition } from './definition';
import { EntityService } from './entity.service';
export interface Workflow<T, E> {
    emit(params: {
        event: E;
        urn: string;
        payload?: object;
    }): Promise<T>;
}
export interface Workflow<T, E> {
    emit(params: {
        event: E;
        urn: string;
        payload?: object;
    }): Promise<T>;
}
export declare class WorkflowService<T, P, E, S> implements Workflow<T, E>, OnModuleInit {
    private readonly definition;
    private readonly kafkaClient;
    private readonly logger;
    private readonly actionsOnStatusChanged;
    private readonly actionsOnEvent;
    private entityService;
    private readonly moduleRef;
    constructor(definition: WorkflowDefinition<T, P, E, S>, injectedEntityService?: EntityService<T, S>);
    onModuleInit(): Promise<void>;
    emit(params: {
        event: E;
        urn: string;
        payload?: T | P | object | string;
    }): Promise<T>;
    private transition;
    private executeInlineActions;
    private nextEvent;
    private isInIdleStatus;
    private isInFailedStatus;
    private configureActions;
    private configureConditions;
    private initializeKakfaConsumers;
    private validateActionMethod;
    private loadEntity;
    private getEntityStatus;
    private updateEntityStatus;
    private getEntityUrn;
}
