/**
 * Request Controller — HTTP handlers for V3 Request API
 *
 * Endpoints:
 * - GET  /api/requests       — list all Requests
 * - GET  /api/requests/:id   — get a single Request
 * - POST /api/requests       — create a Request
 * - POST /api/requests/plan  — plan tasks from a user message
 * - PUT  /api/requests/:id   — update a Request
 *
 * @module controllers/request/request.controller
 */
import type { Request as ExpressRequest, Response } from 'express';
/**
 * Returns all Requests, sorted by createdAt descending.
 *
 * @param req - Express request
 * @param res - Express response with Request array
 */
export declare function listRequests(req: ExpressRequest, res: Response): Promise<void>;
/**
 * Returns a single Request by ID.
 *
 * @param req - Express request with id param
 * @param res - Express response with Request or 404
 */
export declare function getRequest(req: ExpressRequest, res: Response): Promise<void>;
/**
 * Creates a new Request.
 *
 * Request body: CreateRequestInput fields
 *
 * @param req - Express request with CreateRequestInput body
 * @param res - Express response with the created Request
 */
export declare function createRequestHandler(req: ExpressRequest, res: Response): Promise<void>;
/**
 * Decomposes a user message into proposed ProjectTasks.
 *
 * Request body: `{ message: string }`
 *
 * Returns the decomposition plan with tasks, strategy, and reasoning.
 *
 * @param req - Express request with `{ message }` body
 * @param res - Express response with RequestPlan
 */
export declare function planRequest(req: ExpressRequest, res: Response): Promise<void>;
/**
 * Updates an existing Request with partial fields.
 *
 * @param req - Express request with id param and UpdateRequestInput body
 * @param res - Express response with the updated Request
 */
export declare function updateRequest(req: ExpressRequest, res: Response): Promise<void>;
//# sourceMappingURL=request.controller.d.ts.map