/**
 * RedisTaskStore — Redis-backed persistence for TaskManager.
 * Used automatically when backend is "bullmq".
 *
 * Key patterns:
 *   neurolink:tasks              (Hash)  — all task definitions
 *   neurolink:task:{id}:runs     (List)  — run log entries (newest first)
 *   neurolink:task:{id}:history  (List)  — continuation mode conversation history
 */
import { type Task, type TaskStatus, type TaskRunResult, type TaskStore, type TaskManagerConfig, type ConversationEntry } from "../../types/index.js";
export declare class RedisTaskStore implements TaskStore {
    private config;
    readonly type: "redis";
    private client;
    private maxRunLogs;
    private maxHistoryEntries;
    private retentionConfig;
    constructor(config: TaskManagerConfig);
    initialize(): Promise<void>;
    shutdown(): Promise<void>;
    save(task: Task): Promise<void>;
    get(taskId: string): Promise<Task | null>;
    list(filter?: {
        status?: TaskStatus;
    }): Promise<Task[]>;
    update(taskId: string, updates: Partial<Task>): Promise<Task>;
    delete(taskId: string): Promise<void>;
    appendRun(taskId: string, run: TaskRunResult): Promise<void>;
    getRuns(taskId: string, options?: {
        limit?: number;
        status?: string;
    }): Promise<TaskRunResult[]>;
    appendHistory(taskId: string, messages: ConversationEntry[]): Promise<void>;
    getHistory(taskId: string): Promise<ConversationEntry[]>;
    clearHistory(taskId: string): Promise<void>;
    private ensureConnected;
    private getClient;
    /**
     * Set Redis TTL on terminal-state tasks so they auto-expire.
     * Active and paused tasks never expire.
     */
    private applyRetentionTTL;
}
