/**
 * Worker Controller
 * HTTP handlers for worker management API
 */
import { type IRequest, type IResponse } from '../../../../src/index.js';
/**
 * Create a new worker instance
 * @param req.body.name - Worker name (required)
 * @param req.body.queueName - Queue name (required)
 * @param req.body.processor - Job processor function (required; internal only)
 * @param req.body.version - Worker version (optional)
 * @param req.body.options - BullMQ worker options (optional)
 * @param req.body.infrastructure - Infrastructure config (optional)
 * @param req.body.features - Feature flags (optional)
 * @param req.body.datacenter - Datacenter placement config (optional)
 * @returns Success response with worker name
 */
declare function create(req: IRequest, res: IResponse): Promise<void>;
/**
 * Start a worker
 * @param req.params.name - Worker name
 * @returns Success message
 */
declare function start(req: IRequest, res: IResponse): Promise<void>;
/**
 * Stop a worker
 * @param req.params.name - Worker name
 * @returns Success message
 */
declare function stop(req: IRequest, res: IResponse): Promise<void>;
/**
 * Restart a worker
 * @param req.params.name - Worker name
 * @returns Success message
 */
declare function restart(req: IRequest, res: IResponse): Promise<void>;
/**
 * Toggle worker auto-start
 * @param req.params.name - Worker name
 * @param req.query.enabled - true/false
 * @returns Success message
 */
declare function setAutoStart(req: IRequest, res: IResponse): Promise<void>;
/**
 * Pause a worker
 * @param req.params.name - Worker name
 * @returns Success message
 */
declare function pause(req: IRequest, res: IResponse): Promise<void>;
/**
 * Resume a paused worker
 * @param req.params.name - Worker name
 * @returns Success message
 */
declare function resume(req: IRequest, res: IResponse): Promise<void>;
/**
 * Remove a worker instance
 * @param req.params.name - Worker name
 * @returns Success message
 */
declare function remove(req: IRequest, res: IResponse): Promise<void>;
/**
 * Get a specific worker instance
 * @param req.params.name - Worker name
 * @returns Worker instance details
 */
declare function get(req: IRequest, res: IResponse): Promise<void>;
/**
 * Update worker configuration
 * @param req.params.name - Worker name
 * @param req.body - Updated worker configuration
 * @returns Success message
 */
declare function update(req: IRequest, res: IResponse): Promise<void>;
/**
 * Get worker status
 * @param req.params.name - Worker name
 * @returns Worker status information
 */
declare function status(req: IRequest, res: IResponse): Promise<void>;
/**
 * Get worker creation status for polling
 * @param req.params.name - Worker name
 * @returns Worker creation status with progress information
 */
declare function getCreationStatus(req: IRequest, res: IResponse): Promise<void>;
/**
 * Get worker metrics
 * @param req.params.name - Worker name
 * @returns Worker metrics data
 */
declare function metrics(req: IRequest, res: IResponse): Promise<void>;
/**
 * Get worker health information
 * @param req.params.name - Worker name
 * @returns Worker health data
 */
declare function health(req: IRequest, res: IResponse): Promise<void>;
/**
 * Start health monitoring for a worker
 * @param req.params.name - Worker name
 * @param req.body.checkInterval - Interval in seconds between checks (optional)
 * @param req.body.thresholds - Thresholds for errorRate/latency/throughput/cpu/memory/queueSize (optional)
 * @param req.body.alerting - Alerting config (optional)
 * @returns Success message
 */
declare function startMonitoring(req: IRequest, res: IResponse): Promise<void>;
/**
 * Stop health monitoring for a worker
 * @param req.params.name - Worker name
 * @returns Success message
 */
declare function stopMonitoring(req: IRequest, res: IResponse): Promise<void>;
/**
 * Get health check history for a worker
 * @param req.params.name - Worker name
 * @param req.body.limit - Optional limit for number of history entries
 * @returns Array of health check records
 */
declare function healthHistory(req: IRequest, res: IResponse): Promise<void>;
/**
 * Get health trend analysis for a worker
 * @param req.params.name - Worker name
 * @returns Health trend data
 */
declare function healthTrend(req: IRequest, res: IResponse): Promise<void>;
/**
 * Get SLA status for a worker
 * @param req.params.name - Worker name
 * @returns SLA compliance status with checks and metrics
 */
declare function getSlaStatus(req: IRequest, res: IResponse): Promise<void>;
/**
 * Update monitoring configuration for a worker
 * @param req.params.name - Worker name
 * @param req.body.checkInterval - Interval in seconds between checks (optional)
 * @param req.body.thresholds - Thresholds for errorRate/latency/throughput/cpu/memory/queueSize (optional)
 * @param req.body.alerting - Alerting config (optional)
 * @returns Success message
 */
declare function updateMonitoringConfig(req: IRequest, res: IResponse): Promise<void>;
/**
 * Register a new worker version
 * @param req.params.name - Worker name
 * @param req.body.version - Semantic version object { major, minor, patch, prerelease?, build? }
 * @param req.body.migrationPath - Migration path/version string (optional)
 * @param req.body.eolDate - End of life date (optional)
 * @param req.body.changelog - Changelog text (optional)
 * @param req.body.breakingChanges - Array of breaking changes (optional)
 * @returns Success message
 */
declare function registerVersion(req: IRequest, res: IResponse): Promise<void>;
/**
 * List all versions of a worker
 * @param req.params.name - Worker name
 * @param req.body.includeDeprecated - Optional flag to include deprecated versions
 * @returns Array of version information
 */
declare function listVersions(req: IRequest, res: IResponse): Promise<void>;
/**
 * Get specific version information
 * @param req.params.name - Worker name
 * @param req.params.version - Version identifier
 * @returns Version details
 */
declare function getVersion(req: IRequest, res: IResponse): Promise<void>;
/**
 * Deprecate a worker version
 * @param req.params.name - Worker name
 * @param req.params.version - Version to deprecate
 * @param req.body.migrationPath - Migration instructions
 * @param req.body.eolDate - End of life date
 * @returns Success message
 */
declare function deprecateVersion(req: IRequest, res: IResponse): Promise<void>;
/**
 * Activate a worker version
 * @param req.params.name - Worker name
 * @param req.params.version - Version to activate
 * @returns Success message
 */
declare function activateVersion(req: IRequest, res: IResponse): Promise<void>;
/**
 * Deactivate a worker version
 * @param req.params.name - Worker name
 * @param req.params.version - Version to deactivate
 * @returns Success message
 */
declare function deactivateVersion(req: IRequest, res: IResponse): Promise<void>;
/**
 * Check compatibility between worker versions
 * @param req.params.name - Worker name
 * @param req.body.sourceVersion - Source version string (e.g., "1.2.3")
 * @param req.body.targetVersion - Target version string (e.g., "1.3.0")
 * @returns Compatibility information
 */
declare function checkCompatibility(req: IRequest, res: IResponse): Promise<void>;
/**
 * Start a canary deployment
 * @param req.params.name - Worker name
 * @param req.body.currentVersion - Current version string
 * @param req.body.canaryVersion - Canary version string
 * @param req.body.initialTrafficPercent - Starting traffic percent
 * @param req.body.targetTrafficPercent - Target traffic percent
 * @param req.body.incrementPercent - Increment per step
 * @param req.body.incrementInterval - Seconds between increments
 * @param req.body.monitoringDuration - Seconds per monitoring step
 * @param req.body.errorThreshold - Error rate threshold (0-1)
 * @param req.body.latencyThreshold - P95 latency threshold (ms)
 * @param req.body.minSuccessRate - Minimum success rate (0-1)
 * @param req.body.autoRollback - Auto rollback flag
 * @returns Success message
 */
declare function startCanary(req: IRequest, res: IResponse): Promise<void>;
/**
 * Pause a canary deployment
 * @param req.params.name - Worker name
 * @returns Success message
 */
declare function pauseCanary(req: IRequest, res: IResponse): Promise<void>;
/**
 * Resume a paused canary deployment
 * @param req.params.name - Worker name
 * @returns Success message
 */
declare function resumeCanary(req: IRequest, res: IResponse): Promise<void>;
/**
 * Rollback a canary deployment
 * @param req.params.name - Worker name
 * @param req.body.reason - Optional rollback reason
 * @returns Success message
 */
declare function rollbackCanary(req: IRequest, res: IResponse): Promise<void>;
/**
 * Get canary deployment status
 * @param req.params.name - Worker name
 * @returns Canary status information
 */
declare function canaryStatus(req: IRequest, res: IResponse): Promise<void>;
/**
 * Get canary deployment history
 * @param req.params.name - Worker name
 * @returns Array of past canary deployments
 */
declare function canaryHistory(req: IRequest, res: IResponse): Promise<void>;
/**
 * Get system-wide summary of all workers and monitoring
 * @returns System summary with worker count and monitoring data
 */
declare function systemSummary(_req: IRequest, res: IResponse): Promise<void>;
/**
 * Initiate graceful system shutdown
 * @returns Success message
 */
declare function shutdown(_req: IRequest, res: IResponse): Promise<void>;
/**
 * Get monitoring summary for all workers
 * @returns Monitoring summary data
 */
declare function monitoringSummary(_req: IRequest, res: IResponse): Promise<void>;
export declare const WorkerController: Readonly<{
    create(): {
        systemSummary: typeof systemSummary;
        shutdown: typeof shutdown;
        monitoringSummary: typeof monitoringSummary;
        prometheusMetrics: (_req: IRequest, res: IResponse) => Promise<void>;
        recordCustomMetric: (_req: IRequest, res: IResponse) => Promise<void>;
        startTrace: (_req: IRequest, res: IResponse) => Promise<void>;
        endTrace: (_req: IRequest, res: IResponse) => Promise<void>;
        registerDataSubject: (_req: IRequest, res: IResponse) => Promise<void>;
        recordConsent: (_req: IRequest, res: IResponse) => Promise<void>;
        checkCompliance: (_req: IRequest, res: IResponse) => Promise<void>;
        createAccessRequest: (_req: IRequest, res: IResponse) => Promise<void>;
        processAccessRequest: (_req: IRequest, res: IResponse) => Promise<void>;
        encryptSensitiveData: (_req: IRequest, res: IResponse) => Promise<void>;
        decryptSensitiveData: (_req: IRequest, res: IResponse) => Promise<void>;
        recordViolation: (_req: IRequest, res: IResponse) => Promise<void>;
        complianceAuditLogs: (_req: IRequest, res: IResponse) => Promise<void>;
        complianceSummary: (_req: IRequest, res: IResponse) => Promise<void>;
        stopResourceMonitoring: (_req: IRequest, res: IResponse) => Promise<void>;
        startResourceMonitoring: (_req: IRequest, res: IResponse) => Promise<void>;
        getCurrentResourceUsage: (_req: IRequest, res: IResponse) => Promise<void>;
        resourceHistory: (_req: IRequest, res: IResponse) => Promise<void>;
        resourceAlerts: (_req: IRequest, res: IResponse) => Promise<void>;
        resourceTrends: (_req: IRequest, res: IResponse) => Promise<void>;
        workerResourceTrend: (_req: IRequest, res: IResponse) => Promise<void>;
        updateCostConfig: (_req: IRequest, res: IResponse) => Promise<void>;
        calculateProjectedCost: (_req: IRequest, res: IResponse) => Promise<void>;
        getSystemInfo: (_req: IRequest, res: IResponse) => Promise<void>;
        startAutoScaling: (_req: IRequest, res: IResponse) => Promise<void>;
        stopAutoScaling: (_req: IRequest, res: IResponse) => Promise<void>;
        evaluateScaling: (_req: IRequest, res: IResponse) => Promise<void>;
        lastScalingDecision: (_req: IRequest, res: IResponse) => Promise<void>;
        scalingHistory: (_req: IRequest, res: IResponse) => Promise<void>;
        costSummary: (_req: IRequest, res: IResponse) => Promise<void>;
        setScalingPolicy: (_req: IRequest, res: IResponse) => Promise<void>;
        getScalingPolicy: (_req: IRequest, res: IResponse) => Promise<void>;
        registerRegion: (_req: IRequest, res: IResponse) => Promise<void>;
        unregisterRegion: (_req: IRequest, res: IResponse) => Promise<void>;
        listRegions: (_req: IRequest, res: IResponse) => Promise<void>;
        getRegion: (_req: IRequest, res: IResponse) => Promise<void>;
        updateRegionHealth: (_req: IRequest, res: IResponse) => Promise<void>;
        updateRegionLoad: (_req: IRequest, res: IResponse) => Promise<void>;
        placeWorker: (_req: IRequest, res: IResponse) => Promise<void>;
        getPlacement: (_req: IRequest, res: IResponse) => Promise<void>;
        updatePlacement: (_req: IRequest, res: IResponse) => Promise<void>;
        findOptimalRegion: (_req: IRequest, res: IResponse) => Promise<void>;
        setFailoverPolicy: (_req: IRequest, res: IResponse) => Promise<void>;
        getFailoverPolicy: (_req: IRequest, res: IResponse) => Promise<void>;
        startHealthChecks: (_req: IRequest, res: IResponse) => Promise<void>;
        stopHealthChecks: (_req: IRequest, res: IResponse) => Promise<void>;
        getTopology: (_req: IRequest, res: IResponse) => Promise<void>;
        getLoadBalancingRecommendation: (_req: IRequest, res: IResponse) => Promise<void>;
        createMultiQueue: (_req: IRequest, res: IResponse) => Promise<void>;
        startQueue: (_req: IRequest, res: IResponse) => Promise<void>;
        stopQueue: (_req: IRequest, res: IResponse) => Promise<void>;
        queueStats: (_req: IRequest, res: IResponse) => Promise<void>;
        updateQueuePriority: (_req: IRequest, res: IResponse) => Promise<void>;
        updateQueueConcurrency: (_req: IRequest, res: IResponse) => Promise<void>;
        registerPlugin: (_req: IRequest, res: IResponse) => Promise<void>;
        unregisterPlugin: (_req: IRequest, res: IResponse) => Promise<void>;
        enablePlugin: (_req: IRequest, res: IResponse) => Promise<void>;
        disablePlugin: (_req: IRequest, res: IResponse) => Promise<void>;
        listPlugins: (_req: IRequest, res: IResponse) => Promise<void>;
        pluginExecutionHistory: (_req: IRequest, res: IResponse) => Promise<void>;
        pluginStatistics: (_req: IRequest, res: IResponse) => Promise<void>;
        listFailedJobs: (_req: IRequest, res: IResponse) => Promise<void>;
        getFailedJob: (_req: IRequest, res: IResponse) => Promise<void>;
        retryFailedJob: (_req: IRequest, res: IResponse) => Promise<void>;
        deleteFailedJob: (_req: IRequest, res: IResponse) => Promise<void>;
        anonymizeFailedJob: (_req: IRequest, res: IResponse) => Promise<void>;
        dlqAuditLog: (_req: IRequest, res: IResponse) => Promise<void>;
        dlqStats: (_req: IRequest, res: IResponse) => Promise<void>;
        circuitBreakerState: (_req: IRequest, res: IResponse) => Promise<void>;
        resetCircuitBreaker: (_req: IRequest, res: IResponse) => Promise<void>;
        forceOpenCircuit: (_req: IRequest, res: IResponse) => Promise<void>;
        circuitBreakerEvents: (_req: IRequest, res: IResponse) => Promise<void>;
        startCanary: typeof startCanary;
        pauseCanary: typeof pauseCanary;
        resumeCanary: typeof resumeCanary;
        rollbackCanary: typeof rollbackCanary;
        canaryStatus: typeof canaryStatus;
        canaryHistory: typeof canaryHistory;
        registerVersion: typeof registerVersion;
        listVersions: typeof listVersions;
        getVersion: typeof getVersion;
        deprecateVersion: typeof deprecateVersion;
        activateVersion: typeof activateVersion;
        deactivateVersion: typeof deactivateVersion;
        checkCompatibility: typeof checkCompatibility;
        startMonitoring: typeof startMonitoring;
        stopMonitoring: typeof stopMonitoring;
        healthHistory: typeof healthHistory;
        healthTrend: typeof healthTrend;
        updateMonitoringConfig: typeof updateMonitoringConfig;
        eventsStream: (_req: IRequest, res: IResponse) => Promise<void>;
        getSlaStatus: typeof getSlaStatus;
        create: typeof create;
        start: typeof start;
        stop: typeof stop;
        restart: typeof restart;
        pause: typeof pause;
        setAutoStart: typeof setAutoStart;
        resume: typeof resume;
        remove: typeof remove;
        get: typeof get;
        update: typeof update;
        status: typeof status;
        getCreationStatus: typeof getCreationStatus;
        metrics: typeof metrics;
        health: typeof health;
    };
}>;
export default WorkerController;
//# sourceMappingURL=WorkerController.d.ts.map