import { interfaces } from "inversify";
import * as k8s from "@kubernetes/client-node";
import { IBetterLogger } from "@codiac.io/codiac-common";
import { RelayClient } from "../../apis/codiac-relay";
import { AssetReplicaContext } from '../../relay/contracts';
import { KubeConfigRepo } from './kube-config-utils';
/** Shallow front-end-layer utility functions for connecting to a k8s cluster. */
export declare class K8sUtils extends KubeConfigRepo {
    private relayClient;
    protected cache: k8s.KubeConfig;
    constructor(relayClient: RelayClient, cache: k8s.KubeConfig, logger: IBetterLogger);
    static bootstrap(ioc: interfaces.Container): void;
    /** Requests the relay to connect to the Cloud Service Provider
     * for the remote cluster
     * and download the cluster connection data
     * (aka the KubeConfig: cluster url, user, tokens, etc.).  */
    fetchKubeConfigForCluster(cluster: string, forceRefresh?: boolean): Promise<k8s.KubeConfig>;
    getKubeConfig(context: AssetReplicaContext): Promise<k8s.KubeConfig>;
    getK8sClient(context: AssetReplicaContext, kube?: k8s.KubeConfig | undefined): Promise<k8s.CoreV1Api>;
}
