import type { StepResult, WorkflowRunState } from '../../../workflows/index.js';
import type { UpdateWorkflowStateOptions, WorkflowRun, WorkflowRuns, StorageListWorkflowRunsInput } from '../../types.js';
import { StorageDomain } from '../base.js';
export declare abstract class WorkflowsStorage extends StorageDomain {
    constructor();
    abstract supportsConcurrentUpdates(): boolean;
    abstract 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>>>;
    abstract updateWorkflowState({ workflowName, runId, opts, }: {
        workflowName: string;
        runId: string;
        opts: UpdateWorkflowStateOptions;
    }): Promise<WorkflowRunState | undefined>;
    abstract persistWorkflowSnapshot(_: {
        workflowName: string;
        runId: string;
        resourceId?: string;
        snapshot: WorkflowRunState;
        createdAt?: Date;
        updatedAt?: Date;
    }): Promise<void>;
    abstract loadWorkflowSnapshot({ workflowName, runId, }: {
        workflowName: string;
        runId: string;
    }): Promise<WorkflowRunState | null>;
    abstract listWorkflowRuns(args?: StorageListWorkflowRunsInput): Promise<WorkflowRuns>;
    abstract getWorkflowRunById(args: {
        runId: string;
        workflowName?: string;
    }): Promise<WorkflowRun | null>;
    abstract deleteWorkflowRunById(args: {
        runId: string;
        workflowName: string;
    }): Promise<void>;
}
//# sourceMappingURL=base.d.ts.map