/**
 * Knowledge REST Controller
 *
 * Handles HTTP requests for the Company Knowledge document system.
 * Provides CRUD operations for knowledge documents with scope-based
 * storage (global or project-specific).
 *
 * @module controllers/knowledge/knowledge.controller
 */
import type { Request, Response, NextFunction } from 'express';
/**
 * POST /api/knowledge/documents
 *
 * Create a new knowledge document.
 *
 * @param req - Request with body: { title, content, category, scope, projectPath?, tags?, createdBy }
 * @param res - Response returning { success, data: { id } }
 * @param next - Next function for error propagation
 */
export declare function createDocument(req: Request, res: Response, next: NextFunction): Promise<void>;
/**
 * GET /api/knowledge/documents
 *
 * List knowledge documents with optional filtering.
 *
 * @param req - Request with query: { scope?, projectPath?, category?, search? }
 * @param res - Response returning { success, data: KnowledgeDocumentSummary[] }
 * @param next - Next function for error propagation
 */
export declare function listDocuments(req: Request, res: Response, next: NextFunction): Promise<void>;
/**
 * GET /api/knowledge/documents/:id
 *
 * Get a single knowledge document by ID.
 *
 * @param req - Request with params: { id } and query: { scope?, projectPath? }
 * @param res - Response returning { success, data: KnowledgeDocument }
 * @param next - Next function for error propagation
 */
export declare function getDocument(req: Request, res: Response, next: NextFunction): Promise<void>;
/**
 * PUT /api/knowledge/documents/:id
 *
 * Update an existing knowledge document.
 *
 * @param req - Request with params: { id } and body: { title?, content?, category?, tags?, scope, projectPath?, updatedBy }
 * @param res - Response returning { success: true }
 * @param next - Next function for error propagation
 */
export declare function updateDocument(req: Request, res: Response, next: NextFunction): Promise<void>;
/**
 * DELETE /api/knowledge/documents/:id
 *
 * Delete a knowledge document.
 *
 * @param req - Request with params: { id } and query: { scope?, projectPath? }
 * @param res - Response returning { success: true }
 * @param next - Next function for error propagation
 */
export declare function deleteDocument(req: Request, res: Response, next: NextFunction): Promise<void>;
/**
 * GET /api/knowledge/categories
 *
 * List all categories (default + custom in-use) for a given scope.
 *
 * @param req - Request with query: { scope?, projectPath? }
 * @param res - Response returning { success, data: string[] }
 * @param next - Next function for error propagation
 */
export declare function listCategories(req: Request, res: Response, next: NextFunction): Promise<void>;
//# sourceMappingURL=knowledge.controller.d.ts.map