// Copyright (c) 2022, the R8 project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.

package com.android.tools.r8.retrace;

import com.android.tools.r8.DiagnosticsHandler;
import com.android.tools.r8.Keep;

@Keep
public abstract class MappingProviderBuilder<
    P extends MappingProvider, T extends MappingProviderBuilder<P, T>> {

  public abstract T self();

  public abstract T setAllowExperimental(boolean allowExperimental);

  public abstract T setDiagnosticsHandler(DiagnosticsHandler diagnosticsHandler);

  public abstract P build();
}
