/**
 * Task Cleaner - Handles cleanup, expiration, and notifications for tasks
 *
 * noReply Strategy:
 * - Individual task completion: noReply=true (save tokens)
 * - All tasks complete: noReply=false (let AI process results)
 */
import type { PluginInput } from "@opencode-ai/plugin";
import { TaskStore } from "../task-store.js";
import { ConcurrencyController } from "../concurrency.js";
import { SessionPool } from "../session-pool.js";
type OpencodeClient = PluginInput["client"];
export declare class TaskCleaner {
    private client;
    private store;
    private concurrency;
    private sessionPool;
    constructor(client: OpencodeClient, store: TaskStore, concurrency: ConcurrencyController, sessionPool: SessionPool);
    pruneExpiredTasks(): void;
    scheduleCleanup(taskId: string): void;
    /**
     * Notify parent session when task(s) complete.
     * Uses noReply strategy:
     * - Individual completion: noReply=true (silent notification, save tokens)
     * - All complete: noReply=false (AI should process and report results)
     */
    notifyParentIfAllComplete(parentSessionID: string): Promise<void>;
}
export {};
