// Signature format: 4.0
package androidx.javascriptengine {

  public final class EvaluationFailedException extends androidx.javascriptengine.JavaScriptException {
    ctor public EvaluationFailedException(String);
  }

  public final class EvaluationResultSizeLimitExceededException extends androidx.javascriptengine.JavaScriptException {
    ctor public EvaluationResultSizeLimitExceededException();
    ctor public EvaluationResultSizeLimitExceededException(String);
  }

  public final class IsolateStartupParameters {
    ctor public IsolateStartupParameters();
    method @IntRange(from=0) public int getMaxEvaluationReturnSizeBytes();
    method @IntRange(from=0) public long getMaxHeapSizeBytes();
    method @RequiresFeature(name=androidx.javascriptengine.JavaScriptSandbox.JS_FEATURE_EVALUATE_WITHOUT_TRANSACTION_LIMIT, enforcement="androidx.javascriptengine.JavaScriptSandbox#isFeatureSupported") public void setMaxEvaluationReturnSizeBytes(@IntRange(from=0) int);
    method @RequiresFeature(name=androidx.javascriptengine.JavaScriptSandbox.JS_FEATURE_ISOLATE_MAX_HEAP_SIZE, enforcement="androidx.javascriptengine.JavaScriptSandbox#isFeatureSupported") public void setMaxHeapSizeBytes(@IntRange(from=0) long);
    field public static final long DEFAULT_ISOLATE_HEAP_SIZE = 0L; // 0x0L
    field public static final int DEFAULT_MAX_EVALUATION_RETURN_SIZE_BYTES = 20971520; // 0x1400000
  }

  public final class IsolateTerminatedException extends androidx.javascriptengine.JavaScriptException {
    ctor public IsolateTerminatedException();
  }

  public interface JavaScriptConsoleCallback {
    method public default void onConsoleClear();
    method public void onConsoleMessage(androidx.javascriptengine.JavaScriptConsoleCallback.ConsoleMessage);
  }

  public static final class JavaScriptConsoleCallback.ConsoleMessage {
    ctor public JavaScriptConsoleCallback.ConsoleMessage(int, String, String, int, int, String?);
    method public int getColumn();
    method public int getLevel();
    method public int getLine();
    method public String getMessage();
    method public String getSource();
    method public String? getTrace();
    field public static final int LEVEL_DEBUG = 2; // 0x2
    field public static final int LEVEL_ERROR = 8; // 0x8
    field public static final int LEVEL_INFO = 4; // 0x4
    field public static final int LEVEL_LOG = 1; // 0x1
    field public static final int LEVEL_WARNING = 16; // 0x10
  }

  public class JavaScriptException extends java.lang.Exception {
    ctor public JavaScriptException();
    ctor public JavaScriptException(String);
  }

  public final class JavaScriptIsolate implements java.lang.AutoCloseable {
    method @RequiresFeature(name=androidx.javascriptengine.JavaScriptSandbox.JS_FEATURE_CONSOLE_MESSAGING, enforcement="androidx.javascriptengine.JavaScriptSandbox#isFeatureSupported") public void clearConsoleCallback();
    method public void close();
    method @RequiresFeature(name=androidx.javascriptengine.JavaScriptSandbox.JS_FEATURE_EVALUATE_WITHOUT_TRANSACTION_LIMIT, enforcement="androidx.javascriptengine.JavaScriptSandbox#isFeatureSupported") public com.google.common.util.concurrent.ListenableFuture<java.lang.String!> evaluateJavaScriptAsync(byte[]);
    method public com.google.common.util.concurrent.ListenableFuture<java.lang.String!> evaluateJavaScriptAsync(String);
    method @RequiresFeature(name=androidx.javascriptengine.JavaScriptSandbox.JS_FEATURE_PROVIDE_CONSUME_ARRAY_BUFFER, enforcement="androidx.javascriptengine.JavaScriptSandbox#isFeatureSupported") public boolean provideNamedData(String, byte[]);
    method @RequiresFeature(name=androidx.javascriptengine.JavaScriptSandbox.JS_FEATURE_CONSOLE_MESSAGING, enforcement="androidx.javascriptengine.JavaScriptSandbox#isFeatureSupported") public void setConsoleCallback(androidx.javascriptengine.JavaScriptConsoleCallback);
    method @RequiresFeature(name=androidx.javascriptengine.JavaScriptSandbox.JS_FEATURE_CONSOLE_MESSAGING, enforcement="androidx.javascriptengine.JavaScriptSandbox#isFeatureSupported") public void setConsoleCallback(java.util.concurrent.Executor, androidx.javascriptengine.JavaScriptConsoleCallback);
  }

  public final class JavaScriptSandbox implements java.lang.AutoCloseable {
    method public void close();
    method public static com.google.common.util.concurrent.ListenableFuture<androidx.javascriptengine.JavaScriptSandbox!> createConnectedInstanceAsync(android.content.Context);
    method public androidx.javascriptengine.JavaScriptIsolate createIsolate();
    method public androidx.javascriptengine.JavaScriptIsolate createIsolate(androidx.javascriptengine.IsolateStartupParameters);
    method public boolean isFeatureSupported(String);
    method public static boolean isSupported();
    field public static final String JS_FEATURE_CONSOLE_MESSAGING = "JS_FEATURE_CONSOLE_MESSAGING";
    field public static final String JS_FEATURE_EVALUATE_WITHOUT_TRANSACTION_LIMIT = "JS_FEATURE_EVALUATE_WITHOUT_TRANSACTION_LIMIT";
    field public static final String JS_FEATURE_ISOLATE_MAX_HEAP_SIZE = "JS_FEATURE_ISOLATE_MAX_HEAP_SIZE";
    field public static final String JS_FEATURE_ISOLATE_TERMINATION = "JS_FEATURE_ISOLATE_TERMINATION";
    field public static final String JS_FEATURE_PROMISE_RETURN = "JS_FEATURE_PROMISE_RETURN";
    field public static final String JS_FEATURE_PROVIDE_CONSUME_ARRAY_BUFFER = "JS_FEATURE_PROVIDE_CONSUME_ARRAY_BUFFER";
    field public static final String JS_FEATURE_WASM_COMPILATION = "JS_FEATURE_WASM_COMPILATION";
  }

  public final class MemoryLimitExceededException extends androidx.javascriptengine.JavaScriptException {
    ctor public MemoryLimitExceededException();
    ctor public MemoryLimitExceededException(String);
  }

  public final class SandboxDeadException extends androidx.javascriptengine.JavaScriptException {
    ctor public SandboxDeadException();
  }

  public final class SandboxUnsupportedException extends java.lang.RuntimeException {
    ctor public SandboxUnsupportedException(String);
  }

}

