// Path: src/main/java/org/unbrokendome/gradle/plugins/gitversion/version/SemVersion.java
// public interface SemVersion {
// 
//     int getMajor();
// 
//     int getMinor();
// 
//     int getPatch();
// 
//     @Nullable
//     String getPrereleaseTag();
// 
//     @Nullable
//     String getBuildMetadata();
// 
// 
//     @Nonnull
//     default MutableSemVersion cloneAsMutable() {
//         return new MutableSemVersionImpl()
//                 .setFrom(this);
//     }
// 
// 
//     @Nonnull
//     static SemVersion create(int major, int minor, int patch,
//                              @Nullable String prereleaseTag,
//                              @Nullable String buildMetadata) {
//         return new ImmutableSemVersionImpl(major, minor, patch, prereleaseTag, buildMetadata);
//     }
// 
// 
//     @Nonnull
//     static SemVersion create(int major, int minor, int patch, String prereleaseTag) {
//         return create(major, minor, patch, prereleaseTag, null);
//     }
// 
// 
//     @Nonnull
//     static SemVersion create(int major, int minor, int patch) {
//         return create(major, minor, patch, null, null);
//     }
// 
// 
//     @Nonnull
//     static SemVersion immutableCopyOf(SemVersion version) {
//         if (version instanceof ImmutableSemVersionImpl) {
//             return version;
// 
//         } else {
//             return create(version.getMajor(), version.getMinor(), version.getPatch(),
//                     version.getPrereleaseTag(), version.getBuildMetadata());
//         }
//     }
// 
// 
//     @Nonnull
//     static SemVersion parse(String input) {
//         return SemVersionParser.parse(input);
//     }
// }


import javax.annotation.Nonnull;
import org.unbrokendome.gradle.plugins.gitversion.version.SemVersion;
package org.unbrokendome.gradle.plugins.gitversion.core;




@SuppressWarnings("UnusedReturnValue")
public interface VersioningRulesBuilder {

    @Nonnull
// Path: src/main/java/org/unbrokendome/gradle/plugins/gitversion/version/SemVersion.java
// public interface SemVersion {
// 
//     int getMajor();
// 
//     int getMinor();
// 
//     int getPatch();
// 
//     @Nullable
//     String getPrereleaseTag();
// 
//     @Nullable
//     String getBuildMetadata();
// 
// 
//     @Nonnull
//     default MutableSemVersion cloneAsMutable() {
//         return new MutableSemVersionImpl()
//                 .setFrom(this);
//     }
// 
// 
//     @Nonnull
//     static SemVersion create(int major, int minor, int patch,
//                              @Nullable String prereleaseTag,
//                              @Nullable String buildMetadata) {
//         return new ImmutableSemVersionImpl(major, minor, patch, prereleaseTag, buildMetadata);
//     }
// 
// 
//     @Nonnull
//     static SemVersion create(int major, int minor, int patch, String prereleaseTag) {
//         return create(major, minor, patch, prereleaseTag, null);
//     }
// 
// 
//     @Nonnull
//     static SemVersion create(int major, int minor, int patch) {
//         return create(major, minor, patch, null, null);
//     }
// 
// 
//     @Nonnull
//     static SemVersion immutableCopyOf(SemVersion version) {
//         if (version instanceof ImmutableSemVersionImpl) {
//             return version;
// 
//         } else {
//             return create(version.getMajor(), version.getMinor(), version.getPatch(),
//                     version.getPrereleaseTag(), version.getBuildMetadata());
//         }
//     }
// 
// 
//     @Nonnull
//     static SemVersion parse(String input) {
//         return SemVersionParser.parse(input);
//     }
// }


// Path: src/main/java/org/unbrokendome/gradle/plugins/gitversion/core/VersioningRulesBuilder.java
import javax.annotation.Nonnull;
import org.unbrokendome.gradle.plugins.gitversion.version.SemVersion;

package org.unbrokendome.gradle.plugins.gitversion.core;




@SuppressWarnings("UnusedReturnValue")
public interface VersioningRulesBuilder {

    @Nonnull
    VersioningRulesBuilder setBaseVersion(SemVersion baseVersion);