import * as k8s from '@kubernetes/client-node'; import { V1PersistentVolume } from '@kubernetes/client-node'; import { BaseResourceOperations, ResourceOperationOptions, WatchCallback } from '../BaseResourceOperations.js'; import { KubernetesClient } from '../KubernetesClient.js'; /** * PersistentVolume-specific operation options */ export interface PersistentVolumeOperationOptions extends ResourceOperationOptions { /** * Filter by storage class */ storageClass?: string; /** * Filter by reclaim policy */ reclaimPolicy?: string; /** * Filter by access mode */ accessMode?: string; } /** * Represents a PV with usage information */ export interface PVWithUsage extends V1PersistentVolume { usage?: { capacity?: string; used?: string; available?: string; percentUsed?: number; }; } /** * PV analysis result */ export interface PVAnalysisResult { total: number; byStatus: Record; byStorageClass: Record; byReclaimPolicy: Record; unbound: V1PersistentVolume[]; issues: Array<{ pv: V1PersistentVolume; issue: string; severity: 'info' | 'warning' | 'error'; recommendation?: string; }>; } /** * Operations for Kubernetes Persistent Volumes */ export declare class PersistentVolumeOperations extends BaseResourceOperations { constructor(client: KubernetesClient); protected getResourceNamespaced(): boolean; /** * Create operation is not supported for this read-only tool */ create(_resource: V1PersistentVolume, _options?: ResourceOperationOptions): Promise; /** * Update operation is not supported for this read-only tool */ update(_resource: V1PersistentVolume, _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 all Persistent Volumes */ list(options?: PersistentVolumeOperationOptions): Promise; /** * Get a specific Persistent Volume by name */ get(name: string, _options?: ResourceOperationOptions): Promise; /** * Watch Persistent Volumes for changes */ watch(callback: WatchCallback, options?: ResourceOperationOptions): () => void; /** * Analyze PV status and issues */ analyzePVs(options?: PersistentVolumeOperationOptions): 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 PV usage information (requires metrics or node stats) */ getPVUsage(pvName: string): Promise; } //# sourceMappingURL=PersistentVolumeOperations.d.ts.map