/**
 * Task Store - Stores and manages parallel tasks
 *
 * Features:
 * - Automatic garbage collection
 * - Memory-safe storage with limits
 * - Completed task archiving
 */
import type { ParallelTask } from "./interfaces/parallel-task.interface.js";
export declare class TaskStore {
    private tasks;
    private pendingByParent;
    private notifications;
    private archivedCount;
    set(id: string, task: ParallelTask): void;
    get(id: string): ParallelTask | undefined;
    getAll(): ParallelTask[];
    getRunning(): ParallelTask[];
    getByParent(parentSessionID: string): ParallelTask[];
    delete(id: string): boolean;
    clear(): void;
    trackPending(parentSessionID: string, taskId: string): void;
    untrackPending(parentSessionID: string, taskId: string): void;
    getPendingCount(parentSessionID: string): number;
    hasPending(parentSessionID: string): boolean;
    queueNotification(task: ParallelTask): void;
    getNotifications(parentSessionID: string): ParallelTask[];
    clearNotifications(parentSessionID: string): void;
    cleanEmptyNotifications(): void;
    clearNotificationsForTask(taskId: string): void;
    /**
     * Get memory statistics
     */
    getStats(): {
        tasksInMemory: number;
        runningTasks: number;
        archivedTasks: number;
        notificationQueues: number;
        pendingParents: number;
    };
    /**
     * Garbage collect completed tasks
     * Archives old completed tasks to disk
     */
    gc(): Promise<number>;
    /**
     * Archive tasks to disk for later analysis
     */
    private archiveTasks;
    /**
     * Force cleanup of all completed tasks
     */
    forceCleanup(): number;
}
