import { IWorkflowManager, INodeManager, IConnectionManager, IViewportManager, IWorkflowPersistence, IWorkflowEventSystem } from '../interfaces/IWorkflowManager';
export type PersistenceType = 'localStorage' | 'memory' | 'none';
export interface WorkflowServiceConfig {
    persistenceType?: PersistenceType;
    enableEvents?: boolean;
    customPersistence?: IWorkflowPersistence;
    customEventSystem?: IWorkflowEventSystem;
}
export declare class WorkflowServiceFactory {
    private static instance;
    private services;
    private constructor();
    static getInstance(): WorkflowServiceFactory;
    createWorkflowManager(config?: WorkflowServiceConfig): IWorkflowManager;
    createNodeManager(): INodeManager;
    createConnectionManager(): IConnectionManager;
    createViewportManager(): IViewportManager;
    createEventSystem(config?: WorkflowServiceConfig): IWorkflowEventSystem;
    createPersistence(config?: WorkflowServiceConfig): IWorkflowPersistence | undefined;
    createAllServices(config?: WorkflowServiceConfig): {
        workflowManager: IWorkflowManager;
        nodeManager: INodeManager;
        connectionManager: IConnectionManager;
        viewportManager: IViewportManager;
        eventSystem: IWorkflowEventSystem;
    };
    clearCache(): void;
    private createNoOpEventSystem;
}
export declare const workflowServiceFactory: WorkflowServiceFactory;
//# sourceMappingURL=WorkflowServiceFactory.d.ts.map