// 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;
import com.android.tools.r8.references.ClassReference;
import com.android.tools.r8.retrace.internal.MappingSupplierInternal;

@Keep
public abstract class MappingSupplier<T extends MappingSupplier<T>>
    extends MappingSupplierInternal {

  /***
   * Register an allowed mapping lookup to allow for prefetching of resources.
   *
   * @param classReference The minified class reference allowed to be lookup up.
   */
  public abstract T registerClassUse(ClassReference classReference);

  public abstract void verifyMappingFileHash(DiagnosticsHandler diagnosticsHandler);
}
