import { ProjectGraphProjectNode, Tree, ProjectGraph } from '@nx/devkit';
import { S as StormWorkspaceConfig } from '../../types-Dug-2iKz.js';
import { VersionActions } from 'nx/release';
import { ReleaseGroupWithName } from 'nx/src/command-line/release/config/filter-release-groups';
import { FinalConfigForProject } from 'nx/src/command-line/release/utils/release-graph';
import { NxReleaseVersionConfiguration } from 'nx/src/config/nx-json';
import 'zod';
import 'zod/v4/mini';

/**
 * Custom Rust version actions for crates inside a Storm workspace.
 */
declare class StormRustVersionActions extends VersionActions {
    validManifestFilenames: string[];
    /**
     * The Storm workspace configuration object, which is loaded from the `storm-workspace.json` file.
     *
     * @remarks
     * This member variable is populated during the {@link init} method.
     */
    protected workspaceConfig: StormWorkspaceConfig | null;
    constructor(releaseGroup: ReleaseGroupWithName, projectGraphNode: ProjectGraphProjectNode, finalConfigForProject: FinalConfigForProject);
    /**
     * Asynchronous initialization of the version actions and resolution of manifest paths.
     *
     * @remarks
     * This does NOT validate that manifest files exist - that happens later in validate().
     *
     * @params tree - The file system tree to read from.
     */
    init(tree: Tree): Promise<void>;
    readCurrentVersionFromSourceManifest(tree: Tree): Promise<{
        currentVersion: string;
        manifestPath: string;
    }>;
    readCurrentVersionFromRegistry(tree: Tree, currentVersionResolverMetadata: NxReleaseVersionConfiguration["currentVersionResolverMetadata"]): Promise<{
        currentVersion: string;
        logText: string;
    }>;
    readCurrentVersionOfDependency(tree: Tree, projectGraph: ProjectGraph, dependencyProjectName: string): Promise<{
        currentVersion: string | null;
        dependencyCollection: string | null;
    }>;
    updateProjectVersion(tree: Tree, newVersion: string): Promise<string[]>;
    /**
     * Updates the dependencies of the project in the specified Cargo.toml files.
     *
     * @param tree - The file system tree to read from and write to.
     * @param projectGraph - The project graph to use for resolving dependencies.
     * @param dependenciesToUpdate - A mapping of dependency names to their new versions.
     * @returns An array of log messages indicating the results of the updates.
     */
    updateProjectDependencies(tree: Tree, projectGraph: ProjectGraph, dependenciesToUpdate?: Record<string, string>): Promise<string[]>;
}

export { StormRustVersionActions as default };
