import { Observable } from 'rxjs';
import { PersistentWorkItemState } from './persistent-work-item-state';
import { PersistentWorkflowSnapshot } from './persistent-workflow-snapshot';
/**
 * Persistent workflow store class.
 */
export declare abstract class PersistentWorkflowStore {
    protected moduleName: string;
    protected name: string;
    /**
     * Initializes a new instance of the PersistentWorkflowStore abstract class.
     * @param moduleName the module name.
     * @param name the key name to index the same workflow.
     */
    constructor(moduleName: string, name: string);
    /**
     * Save the checkpoint data of work item processing.
     *
     * @param version the version number.
     * @param workItemId the identification id of work item.
     * @param workItemState the state of work item.
     * @param workItemData the persistent data to store.
     * @param instanceId the instance id for indexing.
     */
    abstract save(version: number, workItemId: number, workItemState: PersistentWorkItemState, workItemData: any, instanceId?: number): Observable<PersistentWorkflowSnapshot>;
    /**
     * Restore all checkpoint data of work items processing.
     */
    abstract restore(): Observable<PersistentWorkflowSnapshot[]>;
    /**
     * Clear all or specified instance of checkpoint data of work item.
     *
     * @param instanceId the instance id.
     */
    abstract clear(instanceId?: number): Observable<void>;
}
