/**
 * Session task tracking tool.
 *
 * Full-replacement model: agent sends the complete task list each call.
 * At most one task can be in_progress at a time.
 * Tasks are session-local (in-memory, lost on session end).
 */
import { type Static } from "@sinclair/typebox";
import type { ToolDefinition } from "../extensions/types.js";
export type TaskStatus = "pending" | "in_progress" | "completed";
export interface SessionTask {
    id: string;
    title: string;
    status: TaskStatus;
}
export interface TasksToolDetails {
    taskCount: number;
    completed: number;
    inProgress: string | undefined;
}
export type TasksUpdateCallback = (tasks: SessionTask[]) => TasksToolDetails;
declare const tasksUpdateSchema: import("@sinclair/typebox").TObject<{
    tasks: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
        id: import("@sinclair/typebox").TString;
        title: import("@sinclair/typebox").TString;
        status: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"pending">, import("@sinclair/typebox").TLiteral<"in_progress">, import("@sinclair/typebox").TLiteral<"completed">]>;
    }>>;
}>;
export type TasksToolInput = Static<typeof tasksUpdateSchema>;
export declare function createTasksToolDefinition(onUpdate: TasksUpdateCallback): ToolDefinition<typeof tasksUpdateSchema, TasksToolDetails | undefined>;
export {};
//# sourceMappingURL=tasks.d.ts.map