import type { ToolDef } from './provider-base.js';
import type { ToolDispatcher } from './tool-dispatcher.js';
export type TodoStatus = 'pending' | 'in_progress' | 'completed';
export interface TodoItem {
    content: string;
    status: TodoStatus;
}
export declare function isTodoToolName(name: string): boolean;
/** Read API for callers that want to render the list outside the
 *  dispatcher (web admin, recap composer, etc.). */
export declare function getTodoForThread(threadKey: string): TodoItem[] | null;
/** Clear a thread's todo list (e.g. on /new conversation). */
export declare function clearTodoForThread(threadKey: string): void;
/** Tool definitions to advertise to the LLM. */
export declare function getTodoTools(): ToolDef[];
/**
 * Build a per-thread dispatcher. `threadKey` is the composite
 * `threadKey(platform, channelId, threadId)` so the store is scoped
 * to a single conversation.
 */
export declare function buildTodoDispatcher(threadKey: string): ToolDispatcher;
//# sourceMappingURL=todo-dispatcher.d.ts.map