import type { Database } from "bun:sqlite";
import type { Task, TaskPriority, TaskStatus } from "../types/index.js";
export interface StatusSummary {
    pending: number;
    in_progress: number;
    completed: number;
    total: number;
    active_work: import("./task-lifecycle.js").ActiveWorkItem[];
    next_task: Task | null;
    stale_count: number;
    overdue_recurring: number;
    blocked_tasks?: {
        id: string;
        short_id: string | null;
        title: string;
        blocked_by: {
            id: string;
            short_id: string | null;
            title: string;
            status: string;
        }[];
    }[];
}
export declare function getStatus(filters?: {
    project_id?: string;
    task_list_id?: string;
}, agentId?: string, options?: {
    explain_blocked?: boolean;
}, db?: Database): StatusSummary;
export interface DecomposeSubtaskInput {
    title: string;
    description?: string;
    priority?: Task["priority"];
    assigned_to?: string;
    estimated_minutes?: number;
    tags?: string[];
}
export declare function decomposeTasks(parentId: string, subtasks: DecomposeSubtaskInput[], options?: {
    depends_on_prev?: boolean;
}, db?: Database): {
    parent: Task;
    subtasks: Task[];
};
export declare function setTaskStatus(id: string, status: TaskStatus, _agentId?: string, db?: Database): Task;
export declare function setTaskPriority(id: string, priority: TaskPriority, _agentId?: string, db?: Database): Task;
export declare function redistributeStaleTasks(agentId: string, options?: {
    max_age_minutes?: number;
    project_id?: string;
    limit?: number;
}, db?: Database): {
    released: Task[];
    claimed: Task | null;
};
export declare function getTaskStats(filters?: {
    project_id?: string;
    task_list_id?: string;
    agent_id?: string;
}, db?: Database): {
    total: number;
    by_status: Record<string, number>;
    by_priority: Record<string, number>;
    completion_rate: number;
    by_agent: Record<string, number>;
};
//# sourceMappingURL=task-status.d.ts.map