import { EventEmitter } from "events"; import { Task } from "../types/tasks.js"; import { Container } from "../utils/container.js"; export declare class TaskManager extends EventEmitter { private container; private readonly baseDir; private taskListId; constructor(container: Container, taskListId: string); getTaskListId(): string; setTaskListId(taskListId: string): void; /** * Syncs the task list ID with the current session's root session ID. * This is typically called when the session is cleared or compacted. */ syncWithSession(): Promise; private getSessionDir; getTaskPath(taskId: string): string; private getLockPath; ensureSessionDir(): Promise; private withLock; private validateTask; createTask(task: Omit): Promise; getTask(taskId: string): Promise; updateTask(task: Task): Promise; deleteTask(taskId: string): Promise; cleanupOldTaskLists(days?: number): Promise; listTasks(): Promise; getNextTaskId(): Promise; /** * Refreshes the task list by re-reading tasks from disk and emitting a change event. */ refreshTasks(): Promise; }