import { type Helm } from './helm.js';
import { type SoloLogger } from './logging.js';
import { type NamespaceName } from './kube/resources/namespace/namespace_name.js';
export declare class ChartManager {
    private readonly helm?;
    private readonly logger?;
    constructor(helm?: Helm, logger?: SoloLogger);
    /**
     * Setup chart repositories
     *
     * This must be invoked before calling other methods
     *
     * @param repoURLs - a map of name and chart repository URLs
     * @param force - whether or not to update the repo
     * @returns the urls
     */
    setup(repoURLs?: Map<string, string>, force?: boolean): Promise<string[]>;
    addRepo(name: string, url: string, forceUpdateArg: string): Promise<string>;
    /** List available clusters
     *
     * @param namespaceName - the namespace name
     * @param kubeContext - the kube context
     */
    getInstalledCharts(namespaceName: NamespaceName, kubeContext?: string): Promise<string[]>;
    install(namespaceName: NamespaceName, chartReleaseName: string, chartPath: string, version: string, valuesArg: string, kubeContext: string): Promise<boolean>;
    isChartInstalled(namespaceName: NamespaceName, chartReleaseName: string, kubeContext?: string): Promise<boolean>;
    uninstall(namespaceName: NamespaceName, chartReleaseName: string, kubeContext?: string): Promise<boolean>;
    upgrade(namespaceName: NamespaceName, chartReleaseName: string, chartPath: string, version?: string, valuesArg?: string, kubeContext?: string): Promise<boolean>;
}
