import { Persistence } from './persistence';
import { WorkflowData } from '../workflow-data';
import { ClassConstructor } from '@node-ts/bus-core';
import { MessageWorkflowMapping } from '../message-workflow-mapping';
import { Message, MessageAttributes } from '@node-ts/bus-messages';
import { Logger } from '@node-ts/logger-core';
/**
 * A non-durable in-memory persistence for storage and retrieval of workflow data. Before using this,
 * be warned that all workflow data will not survive a process restart or application shut down. As
 * such this should only be used for testing, prototyping or handling unimportant workflows.
 */
export declare class InMemoryPersistence implements Persistence {
    private readonly logger;
    private workflowData;
    constructor(logger: Logger);
    initializeWorkflow<TWorkflowData extends WorkflowData>(workflowDataConstructor: ClassConstructor<TWorkflowData>, _: MessageWorkflowMapping<Message, TWorkflowData>[]): Promise<void>;
    getWorkflowData<WorkflowDataType extends WorkflowData, MessageType extends Message>(workflowDataConstructor: ClassConstructor<WorkflowDataType>, messageMap: MessageWorkflowMapping<MessageType, WorkflowDataType>, message: MessageType, messageOptions: MessageAttributes, includeCompleted?: boolean | undefined): Promise<WorkflowDataType[]>;
    saveWorkflowData<WorkflowDataType extends WorkflowData>(workflowData: WorkflowDataType): Promise<void>;
    length(workflowDataConstructor: ClassConstructor<WorkflowData>): number;
}
