import { Request, Response } from 'express';
import { CreateTask, UpdateTask, TaskQuery, BulkCreateTasks, BulkUpdateTasks, BulkDeleteTasks, DuplicateTask, CreateTemplateFromTask, ApplyTemplate } from '../validators/task.validator';
export declare class TaskController {
    private taskService;
    constructor();
    /**
     * Create a new task
     */
    createTask(req: Request<{}, {}, CreateTask>, res: Response): Promise<void>;
    /**
     * Get all tasks with pagination
     */
    getTasks(req: Request<{}, {}, {}, TaskQuery>, res: Response): Promise<void>;
    /**
     * Get a single task by ID
     */
    getTaskById(req: Request<{
        id: string;
    }>, res: Response): Promise<void>;
    /**
     * Update a task
     */
    updateTask(req: Request<{
        id: string;
    }, {}, UpdateTask>, res: Response): Promise<void>;
    /**
     * Delete a task
     */
    deleteTask(req: Request<{
        id: string;
    }>, res: Response): Promise<void>;
    /**
     * Bulk create tasks
     */
    bulkCreateTasks(req: Request<{}, {}, BulkCreateTasks>, res: Response): Promise<void>;
    /**
     * Bulk update tasks
     */
    bulkUpdateTasks(req: Request<{}, {}, BulkUpdateTasks>, res: Response): Promise<void>;
    /**
     * Bulk delete tasks
     */
    bulkDeleteTasks(req: Request<{}, {}, BulkDeleteTasks>, res: Response): Promise<void>;
    /**
     * Duplicate a task
     */
    duplicateTask(req: Request<{}, {}, DuplicateTask>, res: Response): Promise<void>;
    /**
     * Create a template from a task
     */
    createTemplateFromTask(req: Request<{}, {}, CreateTemplateFromTask>, res: Response): Promise<void>;
    /**
     * Apply a template to create a new task
     */
    applyTemplate(req: Request<{}, {}, ApplyTemplate>, res: Response): Promise<void>;
}
//# sourceMappingURL=task.controller.d.ts.map