import { type CoordinationV1Api, type V1Status } from '@kubernetes/client-node';
import { type Leases } from '../../../resources/lease/leases.js';
import { type NamespaceName } from '../../../../../types/namespace/namespace-name.js';
import { type Lease } from '../../../resources/lease/lease.js';
export declare class K8ClientLeases implements Leases {
    private readonly coordinationApiClient;
    private readonly logger;
    constructor(coordinationApiClient: CoordinationV1Api);
    create(namespace: NamespaceName, leaseName: string, holderName: string, durationSeconds: number): Promise<Lease>;
    delete(namespace: NamespaceName, name: string): Promise<V1Status>;
    read(namespace: NamespaceName, leaseName: string, timesCalled?: number): Promise<Lease>;
    renew(namespace: NamespaceName, leaseName: string, lease: Lease): Promise<Lease>;
    transfer(lease: Lease, newHolderName: string): Promise<Lease>;
    /**
     * @param response - response object from the kubeclient call
     * @param error - body of the response becomes the error if the status is not OK
     * @param errorMessage - the error message to be passed in case it fails
     *
     * @throws SoloError - if the status code is not OK
     */
    private handleKubernetesClientError;
}
