package com.atlassian.bitbucket.scm.git.command.reset;

import com.atlassian.bitbucket.scm.git.command.GitCommand;
import com.atlassian.bitbucket.scm.git.command.GitCommandBuilderSupport;

import javax.annotation.Nonnull;

public interface GitResetBuilder extends GitCommandBuilderSupport<GitResetBuilder> {

    @Nonnull
    GitCommand<Void> build();

    @Nonnull
    GitResetBuilder hard();

    @Nonnull
    GitResetBuilder soft();

    @Nonnull
    GitResetBuilder mixed();

    @Nonnull
    GitResetBuilder commit(String value);

    @Nonnull
    GitResetBuilder path(String value);

    @Nonnull
    GitResetBuilder paths(Iterable<String> values);

    @Nonnull
    GitResetBuilder paths(String value, String... values);

    @Nonnull
    GitResetBuilder quiet(boolean value);
}
