/** * PauseService - Effect-based pause operations. * * Provides Effect-based API for querying and managing paused pipelines. * Depends on CheckpointService for storage access. */ import { Context, Effect, Layer } from 'effect'; import { CheckpointService } from '../checkpoint/service'; import type { PendingPause } from './types'; import { PauseNotFoundError, PauseExpiredError } from '../errors'; /** * PauseService interface. * * Provides Effect-based pause query operations with typed errors. */ export interface PauseService { /** * Get pending pause for a specific run. * * @param runId - The run identifier to check * @returns PendingPause or fails with PauseNotFoundError */ getPendingPause(runId: string): Effect.Effect; /** * List all pending pauses across all runs. * * Queries checkpoints with status='paused' and filters out expired ones. * * @returns Array of pending pauses, sorted by createdAt descending (newest first) */ listPendingPauses(): Effect.Effect; /** * Check if a run has a pending pause. * * @param runId - The run identifier to check * @returns true if run is paused and not expired */ hasPendingPause(runId: string): Effect.Effect; } export declare const PauseService: Context.Tag; /** * Live layer providing PauseService (depends on CheckpointService) */ export declare const PauseServiceLive: Layer.Layer; //# sourceMappingURL=service.d.ts.map