export declare const runTerminalStatuses: readonly ['canceled', 'completed', 'failed', 'indeterminate']; export declare const runStatuses: readonly ["canceled", "completed", "failed", "indeterminate", "queued", "running", "starting"]; export type RunStatus = (typeof runStatuses)[number]; export type RunTerminalStatus = (typeof runTerminalStatuses)[number]; export type RunOperation = { readonly kind: 'claim'; } | { readonly kind: 'start'; } | { readonly kind: 'commit'; readonly status: RunTerminalStatus; }; export type RunTransition = { readonly kind: 'ready'; readonly status: 'starting'; } | { readonly kind: 'running'; readonly status: 'running'; } | { readonly kind: 'terminal'; readonly status: RunTerminalStatus; } | { readonly kind: 'started'; readonly status: 'running'; } | { readonly kind: 'already-started'; readonly status: 'running'; } | { readonly kind: 'committed'; readonly status: RunTerminalStatus; } | { readonly kind: 'stale'; readonly status: RunStatus; }; export type RunClaim = Extract; export type RunStart = Extract; export declare function isRunTerminal(status: RunStatus): status is RunTerminalStatus; export declare function transitionRun(status: RunStatus, operation: RunOperation): RunTransition; export type RunAcceptance = { readonly created: boolean; readonly kind: 'accepted'; readonly runId: string; readonly status: RunStatus; } | { readonly kind: 'conflict'; }; export interface RunObservation { readonly status: RunStatus; readonly terminalEvents: readonly RunTerminalStatus[]; } export interface RunLifecycleHarness { accept(input: { readonly idempotencyKey: string; readonly requestDigest: string; }): Promise; claim(runId: string): Promise; commit(runId: string, status: RunTerminalStatus): Promise; observe(runId: string): Promise; start(runId: string): Promise; } export interface RunLifecycleConformanceCase { readonly name: string; verify(harness: RunLifecycleHarness): Promise; } export declare const runLifecycleConformanceCases: readonly RunLifecycleConformanceCase[];