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 SemanticVersion } from '../base/api/version/semantic-version.js';
import { type SoloLogger } from '../../../core/logging/solo-logger.js';
import { AddRepoOptions } from '../model/add/add-repo-options.js';
export declare class DefaultHelmClient implements HelmClient {
    private readonly logger?;
    /**
     * The name of the namespace argument.
     */
    private static readonly NAMESPACE_ARG_NAME;
    constructor(logger?: SoloLogger);
    version(): Promise<SemanticVersion>;
    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;
}
