/**
 * Template REST Controller
 *
 * Exposes template operations via REST API for listing, inspecting,
 * and creating teams from team templates. Wraps the TemplateService
 * to provide HTTP endpoints for template management.
 *
 * @module controllers/template/template.controller
 */
import type { Request, Response } from 'express';
/**
 * GET /api/templates - List all available team templates.
 *
 * Returns an array of template summaries including id, name,
 * description, category, role count, and version.
 *
 * Accepts optional query parameters:
 * - category: Filter by template category (development, content, research, operations, custom)
 *
 * @param req - Express request with optional query param: category
 * @param res - Express response returning { success, data: TemplateSummary[] }
 *
 * @example
 * ```
 * GET /api/templates
 * GET /api/templates?category=development
 * ```
 */
export declare const handleListTemplates: (req: Request, res: Response, next: import("express").NextFunction) => Promise<void>;
/**
 * GET /api/templates/:id - Get a specific template by ID.
 *
 * Returns the full template definition including roles, verification
 * pipeline, and all configuration details.
 *
 * @param req - Express request with route param: id
 * @param res - Express response returning { success, data: TeamTemplate } or 404
 *
 * @example
 * ```
 * GET /api/templates/dev-fullstack
 * ```
 */
export declare const handleGetTemplate: (req: Request, res: Response, next: import("express").NextFunction) => Promise<void>;
/**
 * POST /api/templates/:id/create-team - Create a team from a template.
 *
 * Generates a Team object with members based on the template's role
 * definitions, hierarchy configuration, and defaults. The created team
 * is returned but NOT persisted to storage — the caller should save it
 * via the teams API if desired.
 *
 * @param req - Express request with route param: id, body: { teamName, nameOverrides? }
 * @param res - Express response returning { success, data: CreateFromTemplateResult } or 404/400
 *
 * @example
 * ```
 * POST /api/templates/dev-fullstack/create-team
 * { "teamName": "Frontend Squad", "nameOverrides": { "team-leader": "Alice" } }
 * ```
 */
export declare const handleCreateTeamFromTemplate: (req: Request, res: Response, next: import("express").NextFunction) => Promise<void>;
/**
 * POST /api/templates/:id/deploy - Deploy a template: create team + save to storage (#184).
 *
 * Unlike create-team (which returns a team object without saving),
 * deploy creates the team, persists it to ~/.crewly/teams/, and
 * optionally assigns it to a project.
 *
 * @param req - Express request with template ID in params, teamName + projectId in body
 * @param res - Express response with created team data
 */
export declare const handleDeployTemplate: (req: Request, res: Response, next: import("express").NextFunction) => Promise<void>;
//# sourceMappingURL=template.controller.d.ts.map