import type { StepResult, WorkflowRunState } from '../../../workflows/index.js';
import type { WorkflowRun, WorkflowRuns, StorageListWorkflowRunsInput, UpdateWorkflowStateOptions } from '../../types.js';
import type { InMemoryDB } from '../inmemory-db.js';
import { WorkflowsStorage } from './base.js';
export declare class WorkflowsInMemory extends WorkflowsStorage {
    private db;
    constructor({ db }: {
        db: InMemoryDB;
    });
    supportsConcurrentUpdates(): boolean;
    dangerouslyClearAll(): Promise<void>;
    private getWorkflowKey;
    updateWorkflowResults({ workflowName, runId, stepId, result, requestContext, }: {
        workflowName: string;
        runId: string;
        stepId: string;
        result: StepResult<any, any, any, any>;
        requestContext: Record<string, any>;
    }): Promise<Record<string, StepResult<any, any, any, any>>>;
    updateWorkflowState({ workflowName, runId, opts, }: {
        workflowName: string;
        runId: string;
        opts: UpdateWorkflowStateOptions;
    }): Promise<WorkflowRunState | undefined>;
    persistWorkflowSnapshot({ workflowName, runId, resourceId, snapshot, createdAt, updatedAt, }: {
        workflowName: string;
        runId: string;
        resourceId?: string;
        snapshot: WorkflowRunState;
        createdAt?: Date;
        updatedAt?: Date;
    }): Promise<void>;
    loadWorkflowSnapshot({ workflowName, runId, }: {
        workflowName: string;
        runId: string;
    }): Promise<WorkflowRunState | null>;
    listWorkflowRuns({ workflowName, fromDate, toDate, perPage, page, resourceId, status, }?: StorageListWorkflowRunsInput): Promise<WorkflowRuns>;
    getWorkflowRunById({ runId, workflowName, }: {
        runId: string;
        workflowName?: string;
    }): Promise<WorkflowRun | null>;
    deleteWorkflowRunById({ runId, workflowName }: {
        runId: string;
        workflowName: string;
    }): Promise<void>;
}
//# sourceMappingURL=inmemory.d.ts.map