import type { Redis } from 'ioredis'; import type { ArchiveSourcePage, ClosedWriteFence, HotWriteToken, RehydrateSnapshot, SeriesResult, StorageLease, StorageWriterRegistration, Task, TaskEvent, TaskMutationSnapshot, TaskStatus, ShortTermStore, TaskStoragePresence, TaskWriteFence, EventQueryOptions, TaskArchiveImportOptions, TaskArchiveRestoreData, TaskFilter, Worker, WorkerFilter, WorkerAssignment, TerminalProjection, TerminalProjectionResult } from '@taskcast/core'; import { type RedisOperationOptions } from './connectivity.js'; export declare class RedisShortTermStore implements ShortTermStore { private redis; private options; readonly supportsHotColdRelease = true; private KEY; private legacySeriesWrites; constructor(redis: Redis, options?: { prefix?: string; legacySeriesWrites?: boolean; } & RedisOperationOptions); saveTask(task: Task): Promise; getTask(taskId: string): Promise; getTaskMutationSnapshot(taskId: string): Promise; acquireStorageLock(taskId: string, lockToken: string, generation: string, ttlMs: number): Promise; renewStorageLock(lease: StorageLease, ttlMs: number): Promise; releaseStorageLock(lease: StorageLease): Promise; getWriteFence(taskId: string): Promise; closeWriteFence(lease: StorageLease, expectedEpoch: number): Promise; reopenWriteFence(lease: StorageLease, expectedEpoch: number): Promise; commitEventFenced(taskId: string, event: Omit, token: HotWriteToken): Promise; saveTaskFenced(task: Task, token: HotWriteToken): Promise; commitTaskEventsFenced(task: Task, expectedRevision: string, events: Omit[], token: HotWriteToken): Promise; readArchiveSourcePage(taskId: string, watermark: number, cursor: string | null, limit: number): Promise; deleteTaskStorageFenced(lease: StorageLease, expectedEpoch: number): Promise; restoreHotTaskFenced(snapshot: RehydrateSnapshot, lease: StorageLease, nextEpoch: number): Promise; projectTerminalFenced(projection: TerminalProjection, lease: StorageLease, expectedEpoch: number, nextEpoch: number): Promise; getTaskStoragePresence(taskId: string): Promise; registerStorageWriter(registration: StorageWriterRegistration, ttlMs: number): Promise; listStorageWriters(): Promise; nextIndex(taskId: string): Promise; appendEvent(taskId: string, event: TaskEvent): Promise; validateTaskArchiveRestore(data: TaskArchiveRestoreData, options?: TaskArchiveImportOptions): Promise; private assertRedisType; restoreTaskArchive(data: TaskArchiveRestoreData, options?: TaskArchiveImportOptions): Promise<{ overwritten: boolean; }>; private execPipelineOrThrow; getEvents(taskId: string, opts?: EventQueryOptions): Promise; setTTL(taskId: string, ttlSeconds: number): Promise; getSeriesLatest(taskId: string, seriesId: string): Promise; setSeriesLatest(taskId: string, seriesId: string, event: TaskEvent): Promise; accumulateSeries(taskId: string, seriesId: string, event: TaskEvent, field: string): Promise; replaceLastSeriesEvent(taskId: string, seriesId: string, event: TaskEvent): Promise; listTasks(filter: TaskFilter): Promise; saveWorker(worker: Worker): Promise; getWorker(workerId: string): Promise; listWorkers(filter?: WorkerFilter): Promise; deleteWorker(workerId: string): Promise; private makeIndexedEventTemplate; private parseSeriesState; private selectSeriesState; private parseEventListHead; private accumulateEvent; private scanSeriesKeys; private evalFenced; private encodeArchiveCursor; private decodeArchiveCursor; private validateRehydrateSnapshot; private static SAVE_TASK_LUA; private static ACQUIRE_STORAGE_LOCK_LUA; private static RENEW_STORAGE_LOCK_LUA; private static RELEASE_STORAGE_LOCK_LUA; private static CLOSE_WRITE_FENCE_LUA; private static REOPEN_WRITE_FENCE_LUA; private static COMMIT_EVENT_FENCED_LUA; private static SAVE_TASK_FENCED_LUA; private static COMMIT_TASK_EVENTS_FENCED_LUA; private static DELETE_TASK_STORAGE_LUA; private static RESTORE_HOT_TASK_LUA; private static PROJECT_TERMINAL_FENCED_LUA; private static REGISTER_STORAGE_WRITER_LUA; private static SET_SERIES_LATEST_LUA; private static ACCUMULATE_LUA; private static CLAIM_LUA; claimTask(taskId: string, workerId: string, cost: number): Promise; addAssignment(assignment: WorkerAssignment): Promise; removeAssignment(taskId: string): Promise; getWorkerAssignments(workerId: string): Promise; getTaskAssignment(taskId: string): Promise; clearTTL(taskId: string): Promise; listByStatus(statuses: TaskStatus[]): Promise; private inspectPipelineForConnectionErrors; } //# sourceMappingURL=short-term.d.ts.map