import type { Lix } from "../lix/open-lix.js";
import type { LixCommit } from "../commit/schema-definition.js";
import type { LixVersion } from "./schema-definition.js";
/**
 * Creates a new version that starts at a specific commit.
 *
 * - Points the new version's `commit_id` to the provided commit.
 * - Generates a fresh `working_commit_id` that references an empty change set (global scope).
 * - Does not modify the active version or any other versions.
 * - Inheritance lineage is controlled via `inheritsFrom` and defaults to `"global"`.
 *
 * @param args.lix - The Lix instance.
 * @param args.commit - The commit to branch from (only `id` is required).
 * @param args.id - Optional explicit version id.
 * @param args.name - Optional version name.
 * @param args.inheritsFrom - Optional lineage: a parent version to inherit from, or `null` to disable; defaults to `"global"`.
 *
 * @example
 * // Branch from a commit
 * const v = await createVersionFromCommit({ lix, commit });
 *
 * @example
 * // Custom id and name
 * const v = await createVersionFromCommit({ lix, commit, id: "my-id", name: "My Branch" });
 *
 * @example
 * // Inherit from a specific version
 * const parent = await createVersion({ lix, name: "base" });
 * const v = await createVersionFromCommit({ lix, commit, inheritsFrom: parent });
 *
 * @example
 * // Opt-out of inheritance
 * const v = await createVersionFromCommit({ lix, commit, inheritsFrom: null });
 *
 * @throws If the provided commit id does not exist.
 */
export declare function createVersionFromCommit(args: {
    lix: Lix;
    commit: Pick<LixCommit, "id">;
    id?: LixVersion["id"];
    name?: LixVersion["name"];
    inheritsFrom?: LixVersion | Pick<LixVersion, "id"> | null;
}): Promise<LixVersion>;
//# sourceMappingURL=create-version-from-commit.d.ts.map