import { Request, Response } from 'express';
import type { ApiContext } from '../types.js';
/**
 * GET /api/projects/:projectId/tasks
 *
 * Lists all tasks across all milestones for a project.
 *
 * Failure mapping:
 *  - 400 if `projectId` is missing
 *  - 404 if the project does not exist
 *  - 500 if the storage layer (projects.json) cannot be read
 *  - 200 + `warning` if TaskService throws (e.g. corrupt task file,
 *    permission denied on .crewly/tasks/) — graceful degradation so
 *    dashboard cards do not go red on per-project filesystem issues.
 *    The `data` array is empty in this case.
 *
 * @throws Never (errors are mapped to HTTP status codes)
 */
export declare function getAllTasks(this: ApiContext, req: Request, res: Response): Promise<void>;
/**
 * GET /api/projects/:projectId/milestones
 *
 * Lists all milestones (with their nested tasks) for a project.
 * Same failure mapping as {@link getAllTasks}.
 */
export declare function getMilestones(this: ApiContext, req: Request, res: Response): Promise<void>;
/**
 * GET /api/projects/:projectId/tasks/by-status/:status
 *
 * Lists tasks for a project filtered by status.
 * Same failure mapping as {@link getAllTasks}.
 */
export declare function getTasksByStatus(this: ApiContext, req: Request, res: Response): Promise<void>;
/**
 * GET /api/projects/:projectId/tasks/by-milestone/:milestoneId
 *
 * Lists tasks for a project filtered by milestone.
 * Same failure mapping as {@link getAllTasks}.
 */
export declare function getTasksByMilestone(this: ApiContext, req: Request, res: Response): Promise<void>;
/**
 * GET /api/projects/:projectId/tasks-status
 *
 * Returns a per-project summary of task counts (totals by status) plus the
 * project's milestones, used by dashboard cards.
 *
 * Failure mapping mirrors {@link getAllTasks}. The graceful-degradation
 * payload uses an empty status-summary shape: `{ totals: { all: 0 }, milestones: [] }`.
 */
export declare function getProjectTasksStatus(this: ApiContext, req: Request, res: Response): Promise<void>;
//# sourceMappingURL=tasks.controller.d.ts.map