import { Message, MessageAttributes } from '@node-ts/bus-messages';
import { WorkflowData, WorkflowDataConstructor } from '../workflow-data';
import { Logger } from '@node-ts/logger-core';
import { Handler } from '@node-ts/bus-core';
import { WorkflowHandlerFn } from './workflow-handler-fn';
import { Persistence } from '../persistence';
import { HandlerWithId, handlerIdProperty } from './handler-with-id';
export declare abstract class WorkflowHandlerProxy<TMessage extends Message, TWorkflowData extends WorkflowData> implements Handler<TMessage>, HandlerWithId {
    readonly handler: WorkflowHandlerFn<TMessage, TWorkflowData>;
    protected readonly workflowDataConstructor: WorkflowDataConstructor<TWorkflowData>;
    protected readonly persistence: Persistence;
    protected readonly logger: Logger;
    readonly [handlerIdProperty]: string;
    constructor(handler: WorkflowHandlerFn<TMessage, TWorkflowData>, workflowDataConstructor: WorkflowDataConstructor<TWorkflowData>, persistence: Persistence, logger: Logger);
    handle(message: TMessage, messageOptions: MessageAttributes): Promise<void>;
    abstract getWorkflowData(message: TMessage, messageOptions: MessageAttributes): Promise<TWorkflowData[]>;
    private persist;
}
