import type { PluginInput } from "@opencode-ai/plugin";
type OpencodeClient = PluginInput["client"];
interface TrackedTaskTodo {
    id: string;
    description: string;
    status: string;
    agent: string;
    isBackground: boolean;
    parentSessionID?: string;
}
export declare class TodoSyncService {
    private client;
    private directory;
    private todoPath;
    private fileTodos;
    private taskTodos;
    private updateTimeout;
    private watcher;
    private pendingUpdates;
    private batchTimer;
    private readonly BATCH_WINDOW_MS;
    private activeSessions;
    constructor(client: OpencodeClient, directory: string);
    start(): Promise<void>;
    registerSession(sessionID: string): void;
    unregisterSession(sessionID: string): void;
    private reloadFileTodos;
    /**
     * Called by TaskToastManager when tasks change
     */
    updateTaskStatus(task: TrackedTaskTodo): void;
    removeTask(taskId: string): void;
    private broadcastUpdate;
    private scheduleUpdate;
    /**
     * Flush all pending updates in parallel batches
     */
    private flushBatchedUpdates;
    private sendTodosToSession;
    stop(): void;
}
export {};
