import type { RequestKubeResource } from "./request-kube-resource.injectable";
import type { EditingResource, EditResourceTabStore } from "../store";
import type { KubeObject } from "@openlens/kube-object";
import type { RequestPatchKubeResource } from "./request-patch-kube-resource.injectable";
import type { ShowNotification } from "../../../notifications";
declare const editResourceModelInjectable: import("@ogre-tools/injectable").Injectable<Promise<EditResourceModel>, unknown, string>;
export default editResourceModelInjectable;
interface Dependencies {
    requestKubeResource: RequestKubeResource;
    requestPatchKubeResource: RequestPatchKubeResource;
    waitForEditingResource: () => Promise<EditingResource>;
    showSuccessNotification: ShowNotification;
    showErrorNotification: ShowNotification;
    readonly store: EditResourceTabStore;
    readonly tabId: string;
}
/**
 * The label name that Lens uses to receive the desired api version
 */
export declare const EditResourceLabelName = "k8slens-edit-resource-version";
export declare class EditResourceModel {
    protected readonly dependencies: Dependencies;
    constructor(dependencies: Dependencies);
    readonly configuration: {
        value: import("mobx").IComputedValue<string>;
        onChange: (value: string) => void;
        error: {
            value: import("mobx").IObservableValue<string>;
            onChange: (error: string) => void;
        };
    };
    private _resource;
    get shouldShowErrorAboutNoResource(): boolean;
    get resource(): KubeObject<import("@openlens/kube-object").KubeObjectMetadata<import("@openlens/kube-object").KubeObjectScope>, unknown, unknown>;
    get editingResource(): EditingResource;
    private get selfLink();
    load: () => Promise<void>;
    get namespace(): string;
    get name(): string;
    get kind(): string;
    save: () => Promise<never[] | null>;
}
