export declare const TASK_STATUSES: readonly ["open", "in_progress", "review", "done", "blocked"];
export type TaskStatus = typeof TASK_STATUSES[number];
export declare const TASK_PRIORITIES: readonly ["low", "medium", "high", "critical"];
export type TaskPriority = typeof TASK_PRIORITIES[number];
export declare function isValidTaskStatus(value: string): value is TaskStatus;
export declare function isValidTaskPriority(value: string): value is TaskPriority;
export interface Task {
    id: string;
    title: string;
    description: string;
    status: TaskStatus;
    priority: TaskPriority;
    assignee?: string;
    milestone: string;
    milestoneId: string;
    tasks: string[];
    acceptanceCriteria: string[];
    filePath: string;
    createdAt: string;
    updatedAt: string;
}
export interface Milestone {
    id: string;
    name: string;
    title: string;
    tasks: Task[];
}
export declare class TaskService {
    private tasksDir;
    constructor(projectPath?: string);
    private parseMarkdownContent;
    /**
     * Read one task markdown file and build a {@link Task}. Returns `null`
     * when the file can't be read (corrupt, permission denied, missing).
     *
     * Status resolution falls back to `statusOverride` when the file's own
     * `status:` front-matter is missing or invalid — this lets callers
     * encode status in the folder layout (`milestone/open/foo.md`) without
     * losing the type narrowing.
     */
    private readTaskFile;
    getAllTasks(): Promise<Task[]>;
    getMilestones(): Promise<Milestone[]>;
    getTasksByStatus(status: string): Promise<Task[]>;
    getTasksByMilestone(milestoneId: string): Promise<Task[]>;
}
//# sourceMappingURL=task.service.d.ts.map