import type { IComputedValue, IObservableValue } from "mobx";
import type { TargetHelmRelease } from "../target-helm-release.injectable";
import type { RequestDetailedHelmRelease } from "./request-detailed-helm-release.injectable";
import type { LensTheme } from "../../../../themes/lens-theme";
import type { RequestHelmReleaseConfiguration } from "../../../../../common/k8s-api/endpoints/helm-releases.api/request-configuration.injectable";
import type { GetResourceDetailsUrl } from "./get-resource-details-url.injectable";
import type { RequestHelmReleaseUpdate } from "../../../../../common/k8s-api/endpoints/helm-releases.api/request-update.injectable";
import type { ShowCheckedErrorNotification } from "../../../notifications/show-checked-error.injectable";
import type { ShowNotification } from "../../../notifications";
import type { HelmRelease } from "../../../../../common/k8s-api/endpoints/helm-releases.api";
import type { NavigateToHelmReleases } from "../../../../../common/front-end-routing/routes/cluster/helm/releases/navigate-to-helm-releases.injectable";
import type { IAsyncComputed } from "@ogre-tools/injectable-react";
declare const releaseDetailsModelInjectable: import("@ogre-tools/injectable").Injectable<Promise<ReleaseDetailsModel>, unknown, TargetHelmRelease>;
export default releaseDetailsModelInjectable;
export interface OnlyUserSuppliedValuesAreShownToggle {
    readonly value: IObservableValue<boolean>;
    toggle: () => Promise<void>;
}
export interface ConfigurationInput {
    readonly nonSavedValue: IObservableValue<string>;
    readonly isLoading: IObservableValue<boolean>;
    readonly isSaving: IObservableValue<boolean>;
    onChange: (value: string) => void;
    save: () => Promise<void>;
}
interface Dependencies {
    readonly targetRelease: TargetHelmRelease;
    readonly activeTheme: IComputedValue<LensTheme>;
    readonly clusterId: string;
    requestDetailedHelmRelease: RequestDetailedHelmRelease;
    requestHelmReleaseConfiguration: RequestHelmReleaseConfiguration;
    getResourceDetailsUrl: GetResourceDetailsUrl;
    updateRelease: RequestHelmReleaseUpdate;
    showCheckedErrorNotification: ShowCheckedErrorNotification;
    showSuccessNotification: ShowNotification;
    createUpgradeChartTab: (release: HelmRelease) => string;
    navigateToHelmReleases: NavigateToHelmReleases;
    helmChartRepo: (release: HelmRelease) => IAsyncComputed<string | undefined>;
}
export declare class ReleaseDetailsModel {
    protected readonly dependencies: Dependencies;
    readonly id: string;
    constructor(dependencies: Dependencies);
    private readonly detailedRelease;
    readonly loadingError: IObservableValue<string | undefined>;
    readonly configuration: ConfigurationInput;
    readonly onlyUserSuppliedValuesAreShown: OnlyUserSuppliedValuesAreShownToggle;
    load: () => Promise<void>;
    private loadConfiguration;
    get release(): HelmRelease;
    private get details();
    get notes(): string;
    get groupedResources(): MinimalResourceGroup[];
    get activeTheme(): import("../../../../themes/lens-theme").LensThemeType;
    close: () => void;
    startUpgradeProcess: () => void;
}
export interface MinimalResourceGroup {
    kind: string;
    isNamespaced: boolean;
    resources: MinimalResource[];
}
export interface MinimalResource {
    uid: string | undefined;
    name: string;
    namespace: string | undefined;
    detailsUrl: string | undefined;
}
