import * as k8s from '@kubernetes/client-node'; import { V1PersistentVolumeClaim } from '@kubernetes/client-node'; import { BaseResourceOperations, ResourceOperationOptions, WatchCallback } from '../BaseResourceOperations.js'; import { KubernetesClient } from '../KubernetesClient.js'; /** * PersistentVolumeClaim-specific operation options */ export interface PersistentVolumeClaimOperationOptions extends ResourceOperationOptions { /** * Filter by storage class */ storageClass?: string; /** * Filter by access mode */ accessMode?: string; /** * Filter by volume mode */ volumeMode?: string; } /** * Represents a PVC with usage information */ export interface PVCWithUsage extends V1PersistentVolumeClaim { usage?: { capacity?: string; used?: string; available?: string; percentUsed?: number; }; boundPV?: string; } /** * PVC analysis result */ export interface PVCAnalysisResult { total: number; byStatus: Record; byStorageClass: Record; pending: V1PersistentVolumeClaim[]; issues: Array<{ pvc: V1PersistentVolumeClaim; issue: string; severity: 'info' | 'warning' | 'error'; recommendation?: string; }>; } /** * Operations for Kubernetes Persistent Volume Claims */ export declare class PersistentVolumeClaimOperations extends BaseResourceOperations { constructor(client: KubernetesClient); protected getResourceNamespaced(): boolean; /** * Create operation is not supported for this read-only tool */ create(_resource: V1PersistentVolumeClaim, _options?: ResourceOperationOptions): Promise; /** * Update operation is not supported for this read-only tool */ update(_resource: V1PersistentVolumeClaim, _options?: ResourceOperationOptions): Promise; /** * Patch operation is not supported for this read-only tool */ patch(_name: string, _patch: any, _options?: ResourceOperationOptions): Promise; /** * Delete operation is not supported for this read-only tool */ delete(_name: string, _options?: ResourceOperationOptions): Promise; /** * List Persistent Volume Claims */ list(options?: PersistentVolumeClaimOperationOptions): Promise; /** * Get a specific Persistent Volume Claim by name */ get(name: string, options?: ResourceOperationOptions): Promise; /** * Watch Persistent Volume Claims for changes */ watch(callback: WatchCallback, options?: ResourceOperationOptions): () => void; /** * Analyze PVC status and issues */ analyzePVCs(options?: PersistentVolumeClaimOperationOptions): Promise; /** * Parse storage size string to bytes for comparison * Supports common Kubernetes storage units (Ki, Mi, Gi, Ti, K, M, G, T) */ private parseStorageSize; /** * Get PVC usage information with node stats integration */ getPVCUsage(name: string, namespace: string): Promise; /** * Check PVC to PV binding relationships */ checkBindingStatus(): Promise<{ bound: number; pending: number; available: number; bindingIssues: Array<{ pvc: V1PersistentVolumeClaim; issue: string; }>; }>; } //# sourceMappingURL=PersistentVolumeClaimOperations.d.ts.map