// Signature format: 4.0
package androidx.security.state {

  public class SecurityPatchState {
    ctor public SecurityPatchState(android.content.Context context);
    ctor public SecurityPatchState(android.content.Context context, optional java.util.List<java.lang.String> systemModulePackageNames);
    ctor public SecurityPatchState(android.content.Context context, optional java.util.List<java.lang.String> systemModulePackageNames, optional androidx.security.state.SecurityStateManagerCompat? customSecurityStateManagerCompat);
    ctor public SecurityPatchState(android.content.Context context, optional java.util.List<java.lang.String> systemModulePackageNames, optional androidx.security.state.SecurityStateManagerCompat? customSecurityStateManagerCompat, optional String? vulnerabilityReportJsonString);
    method public final boolean areCvesPatched(java.util.List<java.lang.String> cveList);
    method public static final androidx.security.state.SecurityPatchState.SecurityPatchLevel getComponentSecurityPatchLevel(String component, String securityPatchLevel);
    method public androidx.security.state.SecurityPatchState.SecurityPatchLevel getDeviceSecurityPatchLevel(String component);
    method public java.util.Map<androidx.security.state.SecurityPatchState.Severity,java.util.Set<java.lang.String>> getPatchedCves(String component, androidx.security.state.SecurityPatchState.SecurityPatchLevel spl);
    method public java.util.List<androidx.security.state.SecurityPatchState.SecurityPatchLevel> getPublishedSecurityPatchLevel(String component);
    method @RequiresApi(26) public static final android.net.Uri getVulnerabilityReportUrl(optional android.net.Uri serverUrl);
    method public final boolean isDeviceFullyUpdated();
    method @WorkerThread public final void loadVulnerabilityReport(String jsonString);
    field public static final String COMPONENT_KERNEL = "KERNEL";
    field public static final String COMPONENT_SYSTEM = "SYSTEM";
    field public static final String COMPONENT_SYSTEM_MODULES = "SYSTEM_MODULES";
    field public static final androidx.security.state.SecurityPatchState.Companion Companion;
    field public static final java.util.List<java.lang.String> DEFAULT_SYSTEM_MODULES;
    field public static final String DEFAULT_VULNERABILITY_REPORTS_URL = "https://storage.googleapis.com/osv-android-api";
  }

  public static final class SecurityPatchState.Companion {
    method public androidx.security.state.SecurityPatchState.SecurityPatchLevel getComponentSecurityPatchLevel(String component, String securityPatchLevel);
    method @RequiresApi(26) public android.net.Uri getVulnerabilityReportUrl(optional android.net.Uri serverUrl);
    property public static String COMPONENT_KERNEL;
    property public static String COMPONENT_SYSTEM;
    property public static String COMPONENT_SYSTEM_MODULES;
    property public java.util.List<? extends java.lang.String> DEFAULT_SYSTEM_MODULES;
    property public static String DEFAULT_VULNERABILITY_REPORTS_URL;
  }

  public static final class SecurityPatchState.DateBasedSecurityPatchLevel extends androidx.security.state.SecurityPatchState.SecurityPatchLevel {
    ctor public SecurityPatchState.DateBasedSecurityPatchLevel(int year, int month, int day);
    method public int compareTo(androidx.security.state.SecurityPatchState.SecurityPatchLevel other);
    method public static androidx.security.state.SecurityPatchState.DateBasedSecurityPatchLevel fromString(String value);
    method public int getDay();
    method public int getMonth();
    method public int getYear();
    field public static final androidx.security.state.SecurityPatchState.DateBasedSecurityPatchLevel.Companion Companion;
  }

  public static final class SecurityPatchState.DateBasedSecurityPatchLevel.Companion {
    method public androidx.security.state.SecurityPatchState.DateBasedSecurityPatchLevel fromString(String value);
  }

  public static final class SecurityPatchState.GenericStringSecurityPatchLevel extends androidx.security.state.SecurityPatchState.SecurityPatchLevel {
    ctor public SecurityPatchState.GenericStringSecurityPatchLevel(String patchLevel);
    method public int compareTo(androidx.security.state.SecurityPatchState.SecurityPatchLevel other);
  }

  public abstract static class SecurityPatchState.SecurityPatchLevel implements java.lang.Comparable<androidx.security.state.SecurityPatchState.SecurityPatchLevel> {
    ctor public SecurityPatchState.SecurityPatchLevel();
    method public abstract String toString();
  }

  public enum SecurityPatchState.Severity {
    enum_constant public static final androidx.security.state.SecurityPatchState.Severity CRITICAL;
    enum_constant public static final androidx.security.state.SecurityPatchState.Severity HIGH;
    enum_constant public static final androidx.security.state.SecurityPatchState.Severity LOW;
    enum_constant public static final androidx.security.state.SecurityPatchState.Severity MODERATE;
  }

  public static final class SecurityPatchState.VersionedSecurityPatchLevel extends androidx.security.state.SecurityPatchState.SecurityPatchLevel {
    ctor public SecurityPatchState.VersionedSecurityPatchLevel(int majorVersion, int minorVersion, optional int buildVersion, optional int patchVersion);
    method public int compareTo(androidx.security.state.SecurityPatchState.SecurityPatchLevel other);
    method public static androidx.security.state.SecurityPatchState.VersionedSecurityPatchLevel fromString(String value);
    method public int getBuildVersion();
    method public int getMajorVersion();
    method public int getMinorVersion();
    method public int getPatchVersion();
    field public static final androidx.security.state.SecurityPatchState.VersionedSecurityPatchLevel.Companion Companion;
  }

  public static final class SecurityPatchState.VersionedSecurityPatchLevel.Companion {
    method public androidx.security.state.SecurityPatchState.VersionedSecurityPatchLevel fromString(String value);
  }

  public class SecurityStateManagerCompat {
    ctor public SecurityStateManagerCompat(android.content.Context context);
    method public android.os.Bundle getGlobalSecurityState(optional String moduleMetadataProviderPackageName);
    field public static final androidx.security.state.SecurityStateManagerCompat.Companion Companion;
    field public static final String KEY_KERNEL_VERSION = "kernel_version";
    field public static final String KEY_SYSTEM_SPL = "system_spl";
    field public static final String KEY_VENDOR_SPL = "vendor_spl";
  }

  public static final class SecurityStateManagerCompat.Companion {
    property public static String KEY_KERNEL_VERSION;
    property public static String KEY_SYSTEM_SPL;
    property public static String KEY_VENDOR_SPL;
  }

}

