import type { Context } from '../context.js'; type Middleware = (ctx: Context, next: () => Promise) => Promise; interface KubernetesConfig { namespace?: string; deployment: string; minReplicas?: number; maxReplicas?: number; targetCPU?: number; targetMemory?: number; scaleUpThreshold?: number; scaleDownThreshold?: number; cooldownPeriod?: number; metricsEndpoint?: string; kubeconfig?: string; } interface KubernetesDeployment { apiVersion: string; kind: string; metadata: { name: string; labels: Record; }; spec: { replicas: number; selector: { matchLabels: Record; }; template: { metadata: { labels: Record; }; spec: { containers: Array<{ name: string; image: string; ports: Array<{ containerPort: number; }>; resources: { requests: Record; limits: Record; }; livenessProbe: { httpGet: { path: string; port: number; }; initialDelaySeconds: number; periodSeconds: number; }; readinessProbe: { httpGet: { path: string; port: number; }; initialDelaySeconds: number; periodSeconds: number; }; }>; }; }; }; } interface KubernetesHPA { apiVersion: string; kind: string; metadata: { name: string; }; spec: { scaleTargetRef: { apiVersion: string; kind: string; name: string; }; minReplicas: number; maxReplicas: number; metrics: Array<{ type: string; resource: { name: string; target: { type: string; averageUtilization: number; }; }; }>; }; } interface PodMetrics { name: string; cpu: number; memory: number; requests: number; timestamp: Date; } interface ScalingDecision { currentReplicas: number; desiredReplicas: number; reason: string; metrics: PodMetrics[]; } /** * Kubernetes Operator Plugin for Auto-scaling * * Features: * - Horizontal Pod Autoscaling (HPA) * - Custom metrics-based scaling * - Request-based scaling * - Memory and CPU-based scaling * - Cooldown periods to prevent flapping * - Integration with Kubernetes API * - Health checks and readiness probes * - Rolling updates support */ export declare function kubernetesOperator(config: KubernetesConfig): Middleware; /** * Create Kubernetes deployment manifest */ export declare function generateDeploymentManifest(name: string, image: string, replicas?: number, resources?: { cpu?: string; memory?: string; }): KubernetesDeployment; /** * Create HPA (Horizontal Pod Autoscaler) manifest */ export declare function generateHPAManifest(name: string, minReplicas?: number, maxReplicas?: number, targetCPU?: number): KubernetesHPA; export { type KubernetesConfig, type PodMetrics, type ScalingDecision }; //# sourceMappingURL=kubernetes.d.ts.map