// Signature format: 4.0
package androidx.benchmark.macro {

  @RequiresApi(29) public final class Api29Kt {
  }

  @androidx.benchmark.macro.ExperimentalMetricApi public final class AudioUnderrunMetric extends androidx.benchmark.macro.Metric {
    ctor public AudioUnderrunMetric();
  }

  public enum BaselineProfileMode {
    method public static androidx.benchmark.macro.BaselineProfileMode valueOf(String name) throws java.lang.IllegalArgumentException;
    method public static androidx.benchmark.macro.BaselineProfileMode[] values();
    enum_constant public static final androidx.benchmark.macro.BaselineProfileMode Disable;
    enum_constant public static final androidx.benchmark.macro.BaselineProfileMode Require;
    enum_constant public static final androidx.benchmark.macro.BaselineProfileMode UseIfAvailable;
  }

  public final class BaselineProfilesKt {
  }

  public abstract sealed class CompilationMode {
    field public static final androidx.benchmark.macro.CompilationMode.Companion Companion;
    field public static final androidx.benchmark.macro.CompilationMode DEFAULT;
  }

  public static final class CompilationMode.Companion {
  }

  public static final class CompilationMode.Full extends androidx.benchmark.macro.CompilationMode {
    ctor public CompilationMode.Full();
  }

  @androidx.benchmark.macro.ExperimentalMacrobenchmarkApi public static final class CompilationMode.Ignore extends androidx.benchmark.macro.CompilationMode {
    ctor public CompilationMode.Ignore();
  }

  @RequiresApi(24) public static final class CompilationMode.None extends androidx.benchmark.macro.CompilationMode {
    ctor public CompilationMode.None();
  }

  @RequiresApi(24) public static final class CompilationMode.Partial extends androidx.benchmark.macro.CompilationMode {
    ctor public CompilationMode.Partial(optional androidx.benchmark.macro.BaselineProfileMode baselineProfileMode, optional @IntRange(from=0L) int warmupIterations);
    ctor public CompilationMode.Partial(optional androidx.benchmark.macro.BaselineProfileMode baselineProfileMode);
    ctor public CompilationMode.Partial();
    method public androidx.benchmark.macro.BaselineProfileMode getBaselineProfileMode();
    method public int getWarmupIterations();
    property public final androidx.benchmark.macro.BaselineProfileMode baselineProfileMode;
    property public final int warmupIterations;
  }

  public final class CompilationModeKt {
  }

  @kotlin.RequiresOptIn(message="This Macrobenchmark API is experimental.") @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) @kotlin.annotation.Target(allowedTargets={kotlin.annotation.AnnotationTarget.CLASS, kotlin.annotation.AnnotationTarget.FUNCTION}) public @interface ExperimentalMacrobenchmarkApi {
  }

  @kotlin.RequiresOptIn(message="This Metric API is experimental.") @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) @kotlin.annotation.Target(allowedTargets={kotlin.annotation.AnnotationTarget.CLASS, kotlin.annotation.AnnotationTarget.FUNCTION}) public @interface ExperimentalMetricApi {
  }

  @kotlin.RequiresOptIn(message="The stable Baseline profile generation API is experimental.") @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) @kotlin.annotation.Target(allowedTargets={kotlin.annotation.AnnotationTarget.CLASS, kotlin.annotation.AnnotationTarget.FUNCTION}) public @interface ExperimentalStableBaselineProfilesApi {
  }

  public final class FrameTimingMetric extends androidx.benchmark.macro.Metric {
    ctor public FrameTimingMetric();
  }

  public final class IdeSummaryStringKt {
  }

  public final class IterationResultKt {
  }

  public final class MacrobenchmarkKt {
  }

  public final class MacrobenchmarkScope {
    ctor public MacrobenchmarkScope(String packageName, boolean launchWithClearTask);
    method public void dropKernelPageCache();
    method public void dropShaderCache();
    method public androidx.test.uiautomator.UiDevice getDevice();
    method public Integer? getIteration();
    method public String getPackageName();
    method public void killProcess(optional boolean useKillAll);
    method public void killProcess();
    method public void pressHome(optional long delayDurationMs);
    method public void pressHome();
    method public void startActivityAndWait(optional kotlin.jvm.functions.Function1<? super android.content.Intent,kotlin.Unit> block);
    method public void startActivityAndWait();
    method public void startActivityAndWait(android.content.Intent intent);
    property public final androidx.test.uiautomator.UiDevice device;
    property public final Integer? iteration;
    property public final String packageName;
  }

  public abstract sealed class Metric {
  }

  public final class MetricKt {
  }

  public final class MetricResultExtensionsKt {
  }

  @androidx.benchmark.macro.ExperimentalMetricApi public enum PowerCategory {
    method public static androidx.benchmark.macro.PowerCategory valueOf(String name) throws java.lang.IllegalArgumentException;
    method public static androidx.benchmark.macro.PowerCategory[] values();
    enum_constant public static final androidx.benchmark.macro.PowerCategory CPU;
    enum_constant public static final androidx.benchmark.macro.PowerCategory DISPLAY;
    enum_constant public static final androidx.benchmark.macro.PowerCategory GPS;
    enum_constant public static final androidx.benchmark.macro.PowerCategory GPU;
    enum_constant public static final androidx.benchmark.macro.PowerCategory MACHINE_LEARNING;
    enum_constant public static final androidx.benchmark.macro.PowerCategory MEMORY;
    enum_constant public static final androidx.benchmark.macro.PowerCategory NETWORK;
    enum_constant public static final androidx.benchmark.macro.PowerCategory UNCATEGORIZED;
  }

  @androidx.benchmark.macro.ExperimentalMetricApi public enum PowerCategoryDisplayLevel {
    method public static androidx.benchmark.macro.PowerCategoryDisplayLevel valueOf(String name) throws java.lang.IllegalArgumentException;
    method public static androidx.benchmark.macro.PowerCategoryDisplayLevel[] values();
    enum_constant public static final androidx.benchmark.macro.PowerCategoryDisplayLevel BREAKDOWN;
    enum_constant public static final androidx.benchmark.macro.PowerCategoryDisplayLevel TOTAL;
  }

  @RequiresApi(29) @androidx.benchmark.macro.ExperimentalMetricApi public final class PowerMetric extends androidx.benchmark.macro.Metric {
    ctor public PowerMetric(androidx.benchmark.macro.PowerMetric.Type type);
    method public static androidx.benchmark.macro.PowerMetric.Type.Battery Battery();
    method public static androidx.benchmark.macro.PowerMetric.Type.Energy Energy(optional java.util.Map<androidx.benchmark.macro.PowerCategory,? extends androidx.benchmark.macro.PowerCategoryDisplayLevel> categories);
    method public static androidx.benchmark.macro.PowerMetric.Type.Power Power(optional java.util.Map<androidx.benchmark.macro.PowerCategory,? extends androidx.benchmark.macro.PowerCategoryDisplayLevel> categories);
    field public static final androidx.benchmark.macro.PowerMetric.Companion Companion;
  }

  public static final class PowerMetric.Companion {
    method public androidx.benchmark.macro.PowerMetric.Type.Battery Battery();
    method public androidx.benchmark.macro.PowerMetric.Type.Energy Energy(optional java.util.Map<androidx.benchmark.macro.PowerCategory,? extends androidx.benchmark.macro.PowerCategoryDisplayLevel> categories);
    method public androidx.benchmark.macro.PowerMetric.Type.Power Power(optional java.util.Map<androidx.benchmark.macro.PowerCategory,? extends androidx.benchmark.macro.PowerCategoryDisplayLevel> categories);
  }

  public abstract static sealed class PowerMetric.Type {
    method public final java.util.Map<androidx.benchmark.macro.PowerCategory,androidx.benchmark.macro.PowerCategoryDisplayLevel> getCategories();
    method public final void setCategories(java.util.Map<androidx.benchmark.macro.PowerCategory,? extends androidx.benchmark.macro.PowerCategoryDisplayLevel>);
    property public final java.util.Map<androidx.benchmark.macro.PowerCategory,androidx.benchmark.macro.PowerCategoryDisplayLevel> categories;
  }

  public static final class PowerMetric.Type.Battery extends androidx.benchmark.macro.PowerMetric.Type {
    ctor public PowerMetric.Type.Battery();
  }

  public static final class PowerMetric.Type.Energy extends androidx.benchmark.macro.PowerMetric.Type {
    ctor public PowerMetric.Type.Energy(optional java.util.Map<androidx.benchmark.macro.PowerCategory,? extends androidx.benchmark.macro.PowerCategoryDisplayLevel> energyCategories);
  }

  public static final class PowerMetric.Type.Power extends androidx.benchmark.macro.PowerMetric.Type {
    ctor public PowerMetric.Type.Power(optional java.util.Map<androidx.benchmark.macro.PowerCategory,? extends androidx.benchmark.macro.PowerCategoryDisplayLevel> powerCategories);
  }

  public enum StartupMode {
    method public static androidx.benchmark.macro.StartupMode valueOf(String name) throws java.lang.IllegalArgumentException;
    method public static androidx.benchmark.macro.StartupMode[] values();
    enum_constant public static final androidx.benchmark.macro.StartupMode COLD;
    enum_constant public static final androidx.benchmark.macro.StartupMode HOT;
    enum_constant public static final androidx.benchmark.macro.StartupMode WARM;
  }

  public final class StartupTimingMetric extends androidx.benchmark.macro.Metric {
    ctor public StartupTimingMetric();
  }

  public final class TagKt {
  }

  @androidx.benchmark.macro.ExperimentalMetricApi public final class TraceSectionMetric extends androidx.benchmark.macro.Metric {
    ctor public TraceSectionMetric(String sectionName, optional androidx.benchmark.macro.TraceSectionMetric.Mode mode);
  }

  public enum TraceSectionMetric.Mode {
    method public static androidx.benchmark.macro.TraceSectionMetric.Mode valueOf(String name) throws java.lang.IllegalArgumentException;
    method public static androidx.benchmark.macro.TraceSectionMetric.Mode[] values();
    enum_constant public static final androidx.benchmark.macro.TraceSectionMetric.Mode First;
    enum_constant public static final androidx.benchmark.macro.TraceSectionMetric.Mode Sum;
  }

}

package androidx.benchmark.macro.perfetto {

  public final class ForceTracingKt {
  }

  public final class PerfettoTraceProcessorKt {
  }

  public final class SliceKt {
  }

  public final class StringHelperKt {
  }

}

