/**
 * File Watcher Controller
 *
 * Handles file watching and git integration endpoints for project monitoring.
 * Includes path traversal protection to prevent unauthorized filesystem access.
 *
 * @module file-watcher-controller
 */
import { Request, Response } from 'express';
/**
 * Controller for file watching and git integration operations.
 * All methods that accept file paths validate them for path traversal attacks.
 */
export declare class FileWatcherController {
    private fileWatcher;
    private gitIntegration;
    private logger;
    private storage;
    constructor();
    /**
     * Start watching a project for file changes.
     *
     * @param req - Express request with projectId param and projectPath in body
     * @param res - Express response object
     * @returns Promise that resolves when response is sent
     *
     * @example
     * POST /api/monitoring/watch/:projectId
     * Body: { projectPath: "/home/user/projects/myapp" }
     */
    startWatching(req: Request, res: Response): Promise<void>;
    /**
     * Stop watching a project for file changes.
     *
     * @param req - Express request with projectId param
     * @param res - Express response object
     * @returns Promise that resolves when response is sent
     */
    stopWatching(req: Request, res: Response): Promise<void>;
    /**
     * Get file watcher statistics.
     *
     * @param req - Express request object
     * @param res - Express response object
     * @returns Promise that resolves when response is sent
     */
    getStats(req: Request, res: Response): Promise<void>;
    /**
     * Get list of watched projects.
     *
     * @param req - Express request object
     * @param res - Express response object
     * @returns Promise that resolves when response is sent
     */
    getWatchedProjects(req: Request, res: Response): Promise<void>;
    /**
     * Start watching all active projects.
     *
     * @param req - Express request object
     * @param res - Express response object
     * @returns Promise that resolves when response is sent
     */
    startWatchingAll(req: Request, res: Response): Promise<void>;
    /**
     * Get git status for a project.
     *
     * @param req - Express request with projectPath in body
     * @param res - Express response object
     * @returns Promise that resolves when response is sent
     *
     * @example
     * POST /api/monitoring/git/status
     * Body: { projectPath: "/home/user/projects/myapp" }
     */
    getGitStatus(req: Request, res: Response): Promise<void>;
    /**
     * Commit changes for a project.
     *
     * @param req - Express request with projectPath, message, autoGenerate, and author in body
     * @param res - Express response object
     * @returns Promise that resolves when response is sent
     *
     * @example
     * POST /api/monitoring/git/commit
     * Body: { projectPath: "/home/user/projects/myapp", message: "feat: add feature" }
     */
    commitChanges(req: Request, res: Response): Promise<void>;
    /**
     * Start scheduled commits for a project.
     *
     * @param req - Express request with projectPath and scheduling options in body
     * @param res - Express response object
     * @returns Promise that resolves when response is sent
     *
     * @example
     * POST /api/monitoring/git/schedule/start
     * Body: { projectPath: "/home/user/projects/myapp", intervalMinutes: 30 }
     */
    startScheduledCommits(req: Request, res: Response): Promise<void>;
    /**
     * Stop scheduled commits for a project.
     *
     * @param req - Express request with projectPath in body
     * @param res - Express response object
     * @returns Promise that resolves when response is sent
     *
     * @example
     * POST /api/monitoring/git/schedule/stop
     * Body: { projectPath: "/home/user/projects/myapp" }
     */
    stopScheduledCommits(req: Request, res: Response): Promise<void>;
    /**
     * Get projects with scheduled commits.
     *
     * @param req - Express request object
     * @param res - Express response object
     * @returns Promise that resolves when response is sent
     */
    getScheduledProjects(req: Request, res: Response): Promise<void>;
}
//# sourceMappingURL=file-watcher.controller.d.ts.map