import { IJobStepService, JobStep, RecordStepInput } from './job-step-service.protocol.js';
import { MemoryJobStore } from './memory-job-store.js';
import './job-orchestration.schema.js';
import 'drizzle-orm/pg-core';
import 'drizzle-orm';

declare class MemoryJobStepService implements IJobStepService {
    private readonly store;
    constructor(store: MemoryJobStore);
    findStep(runId: string, stepId: string): Promise<JobStep | null>;
    recordStep(input: RecordStepInput): Promise<JobStep>;
    /**
     * Replay helper — wipe every step row for a run. Mirrors the `scratch`
     * replay mode of the Drizzle backend (`DELETE FROM job_step WHERE job_run_id = …`).
     */
    clearStepsForRun(runId: string): void;
    /**
     * Remove every non-`completed` row for the run. Memoized (`completed`)
     * rows are preserved — this is the `last_checkpoint` / `last_step`
     * semantics the Drizzle backend implements via
     * `DELETE … WHERE status != 'completed'`. Both replay modes route here
     * (Phase 1 collapses `last_step` onto this behaviour; see JOB-3 notes).
     */
    clearIncompleteSteps(runId: string): void;
    private getOrCreateRows;
    private nextSeq;
}

export { MemoryJobStepService };
