/**
 * Provisioning Controller
 *
 * Express route handlers for the deployment provisioning API.
 * Provides endpoints for triggering deployments, checking status,
 * and listing deployment history.
 *
 * @module controllers/provisioning/provisioning.controller
 */
import type { Request, Response } from 'express';
import { DeploymentStatusService } from '../../services/provisioning/deployment-status.service.js';
import { DeploymentOrchestratorService } from '../../services/provisioning/deployment-orchestrator.service.js';
/**
 * Get or create the DeploymentStatusService singleton.
 *
 * @returns DeploymentStatusService instance
 */
export declare function getStatusService(): DeploymentStatusService;
/**
 * Override singleton services (for testing).
 *
 * @param overrides - Service overrides
 */
export declare function setProvisioningServices(overrides: {
    statusService?: DeploymentStatusService;
    orchestratorService?: DeploymentOrchestratorService;
}): void;
/**
 * Reset singleton services (for testing).
 */
export declare function resetProvisioningServices(): void;
/** Request body for POST /api/provisioning/deployments */
export interface CreateDeploymentRequestBody {
    dropletName: string;
    region?: string;
    size?: string;
    sshKeys?: (number | string)[];
    apiKeys?: {
        anthropicApiKey?: string;
        googleApiKey?: string;
        crewlyCloudApiKey?: string;
    };
    customerId?: string;
    installPro?: boolean;
    registerCloud?: boolean;
}
/**
 * POST /api/provisioning/deployments
 *
 * Trigger a new full-stack deployment. Returns immediately with
 * a deploymentId; the deployment runs asynchronously.
 *
 * @param req - Express request with CreateDeploymentRequestBody
 * @param res - Express response
 */
export declare function createDeployment(req: Request, res: Response): Promise<void>;
/**
 * GET /api/provisioning/deployments/:id/status
 *
 * Get the current status of a deployment.
 *
 * @param req - Express request with id param
 * @param res - Express response
 */
export declare function getDeploymentStatus(req: Request, res: Response): void;
/**
 * GET /api/provisioning/deployments
 *
 * List all tracked deployments with optional filters.
 *
 * @param req - Express request with optional query params
 * @param res - Express response
 */
export declare function listDeployments(req: Request, res: Response): void;
/**
 * DELETE /api/provisioning/deployments/:id
 *
 * Remove a deployment record from the in-memory store.
 *
 * @param req - Express request with id param
 * @param res - Express response
 */
export declare function removeDeployment(req: Request, res: Response): void;
//# sourceMappingURL=provisioning.controller.d.ts.map