import { interfaces } from "inversify";
import * as k8s from "@kubernetes/client-node";
import { IBetterLogger } from "@codiac.io/codiac-common";
import { CommandBaseEnterprise } from "../../command-base-enterprise";
/** Reads from and writes to the local store of k8s cluster connections file (aka: the kube config).
 * Maintains a current state to limit file system operations.
 *
 * Pure KubeConfig only, no codiac dependencies.
 *
 *
 * TODO: Promote this to a shared lib for relay and cli
 * */
export declare class KubeConfigRepo {
    protected cache: k8s.KubeConfig;
    protected logger: IBetterLogger;
    constructor(cache: k8s.KubeConfig, logger: IBetterLogger);
    static bootstrap(ioc: interfaces.Container, cmd: CommandBaseEnterprise): void;
    /** Throws any exceptions. */
    static getKubeConfigPath(): string;
    get configPath(): string;
    private __configPath;
    protected getK8sContext(contextName: string, clusterName: string, k8sCfg: k8s.KubeConfig): k8s.Context;
    /** Writes to the local .kube/config file. */
    cacheWrite(contextName: string, k8sCfg: k8s.KubeConfig): Promise<void>;
    private cacheRefresh;
}
