package com.atlassian.bitbucket.mesh.git.builder.gc;

import com.atlassian.bitbucket.mesh.git.builder.GitProcess;
import com.atlassian.bitbucket.mesh.git.builder.GitProcessBuilderSupport;

import javax.annotation.Nonnull;

/**
 * A builder which can be used to construct a {@link GitProcess process} for running {@code git gc}.
 */
public interface GitGcBuilder extends GitProcessBuilderSupport<GitGcBuilder> {

    @Nonnull
    GitGcBuilder aggressive(boolean value);

    @Nonnull
    GitGcBuilder auto(boolean value);

    @Nonnull
    GitProcess<Void> build();

    @Nonnull
    GitGcBuilder prune(boolean value);

    @Nonnull
    GitGcBuilder pruneOlderThan(String value);

    @Nonnull
    GitGcBuilder quiet(boolean value);
}
