import { type K8 } from '../k8.js';
import { type Namespaces } from '../../../types/namespace/namespaces.js';
import { type Clusters } from '../resources/cluster/clusters.js';
import { type ConfigMaps } from '../resources/config-map/config-maps.js';
import { type Containers } from '../resources/container/containers.js';
import { type Contexts } from '../resources/context/contexts.js';
import { type Pods } from '../resources/pod/pods.js';
import { type Services } from '../resources/service/services.js';
import { type Pvcs } from '../resources/pvc/pvcs.js';
import { type Leases } from '../resources/lease/leases.js';
import { type IngressClasses } from '../resources/ingress-class/ingress-classes.js';
import { type Secrets } from '../resources/secret/secrets.js';
import { type Ingresses } from '../resources/ingress/ingresses.js';
import { type Crds } from '../resources/crd/crds.js';
/**
 * A kubernetes API wrapper class providing custom functionalities required by solo
 *
 * Note: Take care if the same instance is used for parallel execution, as the behaviour may be unpredictable.
 * For parallel execution, create separate instances by invoking clone()
 */
export declare class K8Client implements K8 {
    private readonly context;
    private kubeConfig;
    private kubeClient;
    private coordinationApiClient;
    private extensionApi;
    private networkingApi;
    private k8Leases;
    private k8Clusters;
    private k8ConfigMaps;
    private k8Containers;
    private k8Pods;
    private k8Contexts;
    private k8Services;
    private k8Pvcs;
    private k8Namespaces;
    private k8IngressClasses;
    private k8Secrets;
    private k8Ingresses;
    private k8CRDs;
    /**
     * Create a new k8Factory client for the given context, if context is undefined it will use the current context in kubeconfig
     * @param context - The context to create the k8Factory client for
     */
    constructor(context: string);
    init(context?: string): K8;
    private getKubeConfig;
    namespaces(): Namespaces;
    clusters(): Clusters;
    configMaps(): ConfigMaps;
    containers(): Containers;
    contexts(): Contexts;
    services(): Services;
    pods(): Pods;
    pvcs(): Pvcs;
    leases(): Leases;
    secrets(): Secrets;
    ingressClasses(): IngressClasses;
    ingresses(): Ingresses;
    crds(): Crds;
}
