import { type KubernetesObjectApi } from '@kubernetes/client-node';
import { type Manifests } from '../../../resources/manifest/manifests.js';
export declare class K8ClientManifests implements Manifests {
    private readonly k8sObjectApi;
    constructor(k8sObjectApi: KubernetesObjectApi);
    /**
     * Apply a CRD manifest file (like `kubectl apply -f <file>`).
     * Uses server-side apply (Content-Type: application/apply-patch+yaml)
     * via KubernetesObjectApi.
     */
    applyManifest(filePath: string): Promise<void>;
    /**
     * Patch an existing Kubernetes object (including custom resources) using a merge patch.
     * @param spec - a partial Kubernetes object with apiVersion, kind, metadata.name, metadata.namespace, and the fields to patch
     */
    patchObject(spec: object): Promise<void>;
    scaleStatefulSet(namespace: string, statefulSetName: string, replicas: number): Promise<void>;
    scaleDeployment(namespace: string, deploymentName: string, replicas: number): Promise<void>;
}
