import { type UnInstallChartOptions } from '../model/install/un-install-chart-options.js';
import { type HelmClient } from '../helm-client.js';
import { type Chart } from '../model/chart.js';
import { Repository } from '../model/repository.js';
import { Release } from '../model/chart/release.js';
import { type InstallChartOptions } from '../model/install/install-chart-options.js';
import { type UpgradeChartOptions } from '../model/upgrade/upgrade-chart-options.js';
import { ReleaseItem } from '../model/release/release-item.js';
import { type TestChartOptions } from '../model/test/test-chart-options.js';
import { type SoloLogger } from '../../../core/logging/solo-logger.js';
import { AddRepoOptions } from '../model/add/add-repo-options.js';
import { SemanticVersion } from '../../../business/utils/semantic-version.js';
export declare class DefaultHelmClient implements HelmClient {
    private readonly logger?;
    private readonly installationDirectory?;
    /**
     * The name of the namespace argument.
     */
    private static readonly NAMESPACE_ARG_NAME;
    constructor(logger?: SoloLogger, installationDirectory?: string);
    private readonly ERROR_401_REGEX;
    private readonly ERROR_403_REGEX;
    version(): Promise<SemanticVersion<string>>;
    listRepositories(): Promise<Repository[]>;
    addRepository(repository: Repository, options?: AddRepoOptions): Promise<void>;
    removeRepository(repository: Repository): Promise<void>;
    installChart(releaseName: string, chart: Chart, options: InstallChartOptions): Promise<Release>;
    uninstallChart(releaseName: string, options: UnInstallChartOptions): Promise<void>;
    testChart(releaseName: string, options: TestChartOptions): Promise<void>;
    listReleases(allNamespaces: boolean, namespace?: string, kubeContext?: string): Promise<ReleaseItem[]>;
    dependencyUpdate(chartName: string): Promise<void>;
    upgradeChart(releaseName: string, chart: Chart, options: UpgradeChartOptions): Promise<Release>;
    /**
     * Applies the default namespace and authentication configuration to the given builder.
     * @param _builder - The builder to apply to which the defaults should be applied
     */
    private applyBuilderDefaults;
    /**
     * Executes the given request and returns the response as the given class.
     * The request is executed using the default namespace.
     *
     * @param request - The request to execute
     * @param responseClass - The class of the response
     * @returns The response
     */
    private executeAsync;
    /**
     * Executes the given request and returns the response as a list of the given class.
     * The request is executed using the default namespace.
     *
     * @param request - The request to execute
     * @param responseClass - The class of the response
     * @returns A list of response objects
     */
    private executeAsList;
    private executeInternal;
    updateRepositories(): Promise<void>;
    pullChartPackage(chart: Chart, version: string, destinationDirectory: string): Promise<void>;
}
