/**
 * Task Projection Controller (V3.1)
 *
 * REST API for TaskRecord + TaskEvent data.
 * Mounted at /api/task-projection.
 *
 * @module controllers/task-projection/task-projection.controller
 */
import type { Request, Response } from 'express';
/**
 * GET /api/task-projection/records
 * Lists TaskRecords with optional filters: ?requestId=, ?ownerAgent=, ?status=
 */
export declare function listRecords(req: Request, res: Response): Promise<void>;
/**
 * GET /api/task-projection/records/summary
 * Returns task counts by status/type/agent
 */
export declare function getSummary(req: Request, res: Response): Promise<void>;
/**
 * GET /api/task-projection/records/:id
 * Gets a single TaskRecord
 */
export declare function getRecord(req: Request, res: Response): Promise<void>;
/**
 * POST /api/task-projection/records
 * Creates a new TaskRecord (system/agent can call this)
 */
export declare function createRecord(req: Request, res: Response): Promise<void>;
/**
 * PATCH /api/task-projection/records/:id
 * Updates a TaskRecord (status, timestamps, token usage)
 */
export declare function updateRecord(req: Request, res: Response): Promise<void>;
/**
 * POST /api/task-projection/records/:id/start
 * Marks a task as started
 */
export declare function startRecord(req: Request, res: Response): Promise<void>;
/**
 * POST /api/task-projection/records/:id/done
 * Marks a task as completed
 */
export declare function completeRecord(req: Request, res: Response): Promise<void>;
/**
 * POST /api/task-projection/records/:id/fail
 * Marks a task as failed
 */
export declare function failRecord(req: Request, res: Response): Promise<void>;
/**
 * POST /api/task-projection/records/:id/block
 * Marks a task as blocked
 */
export declare function blockRecord(req: Request, res: Response): Promise<void>;
/**
 * POST /api/task-projection/skills
 * Records a skill execution event (called by agents or skill executor)
 */
export declare function recordSkill(req: Request, res: Response): Promise<void>;
/**
 * GET /api/task-projection/events
 * Lists TaskEvents with optional filters: ?taskId=, ?eventType=, ?limit=
 */
export declare function listEvents(req: Request, res: Response): Promise<void>;
/**
 * GET /api/task-projection/aggregate/request
 * Returns token usage aggregated per request
 */
export declare function aggregateByRequest(req: Request, res: Response): Promise<void>;
/**
 * GET /api/task-projection/aggregate/agent
 * Returns token usage aggregated per agent
 */
export declare function aggregateByAgent(req: Request, res: Response): Promise<void>;
//# sourceMappingURL=task-projection.controller.d.ts.map