diff --git a/.github/workflows/api-check.yml b/.github/workflows/api-check.yml new file mode 100644 index 0000000..a93ee3e --- /dev/null +++ b/.github/workflows/api-check.yml @@ -0,0 +1,30 @@ +name: Public API check + +# Guards the committed public-API dumps (sharingan/api, sharingan-noop/api). +# apiCheck fails the build when the public surface drifts from the dumps, so an +# accidental signature change cannot slip in between releases — the "swap +# sharingan-noop in release" safety story depends on the API staying stable. +# Regenerate intentional changes locally with `./gradlew apiDump` and commit. +on: + pull_request: + workflow_dispatch: + +permissions: + contents: read + +jobs: + api-check: + # macOS so the Kotlin/Native (iOS) klib ABI targets build, matching the + # committed *.klib.api dumps; the Android/JVM dumps are checked here too. + runs-on: macos-latest + steps: + - uses: actions/checkout@v6 + + - name: Set up JDK 17 + uses: actions/setup-java@v5 + with: + distribution: temurin + java-version: "17" + + - name: Check public API against committed dumps + run: ./gradlew apiCheck diff --git a/AGENTS.md b/AGENTS.md index 2b32301..3ac2188 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -109,3 +109,13 @@ presentSharingan(animated: Boolean = true) // presents over topmost VC, any thr - Min targets: Android API 24, iOS arm64 + simulator arm64. Requires Ktor 3.x for the plugin. - KMP/iOS: dependency must be `api(...)` in `iosMain` (not just `commonMain`) and the framework block must `export(...)` it — without both, Kotlin/Native emits an empty header. - XCFramework build tasks: `./gradlew :sharingan:assembleSharinganReleaseXCFramework` (debug tool) and `./gradlew :sharingan-noop:assembleSharinganReleaseXCFramework` (inert twin); outputs at `/build/XCFrameworks/release/Sharingan.xcframework`. + +## Public API stability (BCV) + +The public API of both `:sharingan` and `:sharingan-noop` is guarded by Kotlin's +binary-compatibility-validator. The golden dumps are committed at +`/api/.api` (Android/JVM) and `/api/.klib.api` +(iOS ABI) and cover the full surface, including the iOS-only entry points. + +- `./gradlew apiCheck` — fails if the public API drifts from the committed dumps. Runs on every PR (`.github/workflows/api-check.yml`, macOS so the iOS klib targets build). +- `./gradlew apiDump` — regenerate the dumps after an *intentional* API change, then commit the updated `api/*.api` files in the same PR. diff --git a/build.gradle.kts b/build.gradle.kts index 5e1b23c..8e8d19e 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -4,4 +4,23 @@ plugins { alias(libs.plugins.androidLibrary) apply false alias(libs.plugins.composeMultiplatform) apply false alias(libs.plugins.composeCompiler) apply false + // Applied to the root project: BCV injects apiDump/apiCheck into every + // subproject and guards the committed public-API dumps (issue #11). + alias(libs.plugins.binaryCompatibilityValidator) +} + +// Public-API stability gate. The "swap sharingan-noop in release" safety story +// depends on the public API staying stable across versions; apiCheck (run in CI) +// fails the build when the surface drifts from the committed api/*.api dumps. +apiValidation { + // The sample app is not a published library — nothing to protect. + ignoredProjects += "composeApp" + + // KMP: also dump/verify the Kotlin/Native (iOS) ABI, not just the JVM/Android + // surface, so iosMain-only declarations (SharinganViewController, + // presentSharingan) are covered too. + @OptIn(kotlinx.validation.ExperimentalBCVApi::class) + klib { + enabled = true + } } diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 7fb4b0b..8a5a68e 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -5,6 +5,7 @@ kotlin = "2.4.0" agp = "8.13.2" composeMultiplatform = "1.11.1" vanniktechMavenPublish = "0.36.0" +binaryCompatibilityValidator = "0.18.1" ktor = "3.5.0" kotlinx-coroutines = "1.11.0" @@ -37,3 +38,4 @@ androidLibrary = { id = "com.android.library", version.ref = "agp" } composeMultiplatform = { id = "org.jetbrains.compose", version.ref = "composeMultiplatform" } composeCompiler = { id = "org.jetbrains.kotlin.plugin.compose", version.ref = "kotlin" } mavenPublish = { id = "com.vanniktech.maven.publish", version.ref = "vanniktechMavenPublish" } +binaryCompatibilityValidator = { id = "org.jetbrains.kotlinx.binary-compatibility-validator", version.ref = "binaryCompatibilityValidator" } diff --git a/sharingan-noop/api/sharingan-noop.api b/sharingan-noop/api/sharingan-noop.api new file mode 100644 index 0000000..63d99d9 --- /dev/null +++ b/sharingan-noop/api/sharingan-noop.api @@ -0,0 +1,246 @@ +public final class dev/sharingan/BleEvent : dev/sharingan/SharinganEvent { + public fun (Ljava/lang/String;JLdev/sharingan/BleOperation;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Long;Ljava/lang/String;)V + public synthetic fun (Ljava/lang/String;JLdev/sharingan/BleOperation;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Long;Ljava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/lang/String; + public final fun component2 ()J + public final fun component3 ()Ldev/sharingan/BleOperation; + public final fun component4 ()Ljava/lang/String; + public final fun component5 ()Ljava/lang/String; + public final fun component6 ()Ljava/lang/String; + public final fun component7 ()Ljava/lang/String; + public final fun component8 ()Ljava/lang/Long; + public final fun component9 ()Ljava/lang/String; + public final fun copy (Ljava/lang/String;JLdev/sharingan/BleOperation;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Long;Ljava/lang/String;)Ldev/sharingan/BleEvent; + public static synthetic fun copy$default (Ldev/sharingan/BleEvent;Ljava/lang/String;JLdev/sharingan/BleOperation;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Long;Ljava/lang/String;ILjava/lang/Object;)Ldev/sharingan/BleEvent; + public fun equals (Ljava/lang/Object;)Z + public final fun getCharacteristic ()Ljava/lang/String; + public final fun getDevice ()Ljava/lang/String; + public fun getError ()Ljava/lang/String; + public fun getId ()Ljava/lang/String; + public final fun getOperation ()Ldev/sharingan/BleOperation; + public final fun getPayload ()Ljava/lang/String; + public final fun getSizeBytes ()Ljava/lang/Long; + public fun getTimestampMillis ()J + public final fun getUuid ()Ljava/lang/String; + public fun hashCode ()I + public fun isFailure ()Z + public fun toString ()Ljava/lang/String; +} + +public final class dev/sharingan/BleLogger { + public fun (Ldev/sharingan/SharinganStore;)V + public final fun connect (Ljava/lang/String;Ljava/lang/String;)V + public static synthetic fun connect$default (Ldev/sharingan/BleLogger;Ljava/lang/String;Ljava/lang/String;ILjava/lang/Object;)V + public final fun disconnect (Ljava/lang/String;Ljava/lang/String;)V + public static synthetic fun disconnect$default (Ldev/sharingan/BleLogger;Ljava/lang/String;Ljava/lang/String;ILjava/lang/Object;)V + public final fun discover (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V + public static synthetic fun discover$default (Ldev/sharingan/BleLogger;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILjava/lang/Object;)V + public final fun error (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V + public static synthetic fun error$default (Ldev/sharingan/BleLogger;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILjava/lang/Object;)V + public final fun notify (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V + public static synthetic fun notify$default (Ldev/sharingan/BleLogger;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILjava/lang/Object;)V + public final fun read (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V + public static synthetic fun read$default (Ldev/sharingan/BleLogger;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILjava/lang/Object;)V + public final fun write (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V + public static synthetic fun write$default (Ldev/sharingan/BleLogger;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILjava/lang/Object;)V +} + +public final class dev/sharingan/BleOperation : java/lang/Enum { + public static final field CONNECT Ldev/sharingan/BleOperation; + public static final field DISCONNECT Ldev/sharingan/BleOperation; + public static final field DISCOVER Ldev/sharingan/BleOperation; + public static final field ERROR Ldev/sharingan/BleOperation; + public static final field NOTIFY Ldev/sharingan/BleOperation; + public static final field READ Ldev/sharingan/BleOperation; + public static final field WRITE Ldev/sharingan/BleOperation; + public static fun getEntries ()Lkotlin/enums/EnumEntries; + public static fun valueOf (Ljava/lang/String;)Ldev/sharingan/BleOperation; + public static fun values ()[Ldev/sharingan/BleOperation; +} + +public final class dev/sharingan/HttpEvent : dev/sharingan/SharinganEvent { + public fun (Ljava/lang/String;JLjava/lang/String;Ljava/lang/String;Ljava/lang/Integer;Ljava/lang/Long;Ljava/util/List;Ljava/util/List;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Long;Ljava/util/List;Ljava/lang/String;)V + public synthetic fun (Ljava/lang/String;JLjava/lang/String;Ljava/lang/String;Ljava/lang/Integer;Ljava/lang/Long;Ljava/util/List;Ljava/util/List;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Long;Ljava/util/List;Ljava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/lang/String; + public final fun component10 ()Ljava/lang/String; + public final fun component11 ()Ljava/lang/String; + public final fun component12 ()Ljava/lang/Long; + public final fun component13 ()Ljava/util/List; + public final fun component14 ()Ljava/lang/String; + public final fun component2 ()J + public final fun component3 ()Ljava/lang/String; + public final fun component4 ()Ljava/lang/String; + public final fun component5 ()Ljava/lang/Integer; + public final fun component6 ()Ljava/lang/Long; + public final fun component7 ()Ljava/util/List; + public final fun component8 ()Ljava/util/List; + public final fun component9 ()Ljava/lang/String; + public final fun copy (Ljava/lang/String;JLjava/lang/String;Ljava/lang/String;Ljava/lang/Integer;Ljava/lang/Long;Ljava/util/List;Ljava/util/List;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Long;Ljava/util/List;Ljava/lang/String;)Ldev/sharingan/HttpEvent; + public static synthetic fun copy$default (Ldev/sharingan/HttpEvent;Ljava/lang/String;JLjava/lang/String;Ljava/lang/String;Ljava/lang/Integer;Ljava/lang/Long;Ljava/util/List;Ljava/util/List;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Long;Ljava/util/List;Ljava/lang/String;ILjava/lang/Object;)Ldev/sharingan/HttpEvent; + public fun equals (Ljava/lang/Object;)Z + public final fun getContentType ()Ljava/lang/String; + public final fun getDurationMillis ()Ljava/lang/Long; + public fun getError ()Ljava/lang/String; + public final fun getHost ()Ljava/lang/String; + public fun getId ()Ljava/lang/String; + public final fun getMethod ()Ljava/lang/String; + public final fun getPath ()Ljava/lang/String; + public final fun getRequestBody ()Ljava/lang/String; + public final fun getRequestHeaders ()Ljava/util/List; + public final fun getResponseBody ()Ljava/lang/String; + public final fun getResponseHeaders ()Ljava/util/List; + public final fun getResponseSizeBytes ()Ljava/lang/Long; + public final fun getStatusCode ()Ljava/lang/Integer; + public fun getTimestampMillis ()J + public final fun getTiming ()Ljava/util/List; + public final fun getUrl ()Ljava/lang/String; + public fun hashCode ()I + public fun isFailure ()Z + public fun toString ()Ljava/lang/String; +} + +public final class dev/sharingan/HttpLogger { + public static final field Companion Ldev/sharingan/HttpLogger$Companion; + public static final field REDACTED_VALUE Ljava/lang/String; + public fun (Ldev/sharingan/SharinganStore;Ljava/util/Set;)V + public synthetic fun (Ldev/sharingan/SharinganStore;Ljava/util/Set;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun log (Ljava/lang/String;Ljava/lang/String;Ljava/lang/Integer;Ljava/lang/Long;Ljava/util/List;Ljava/util/List;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Long;Ljava/util/List;Ljava/lang/String;)V + public static synthetic fun log$default (Ldev/sharingan/HttpLogger;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Integer;Ljava/lang/Long;Ljava/util/List;Ljava/util/List;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Long;Ljava/util/List;Ljava/lang/String;ILjava/lang/Object;)V +} + +public final class dev/sharingan/HttpLogger$Companion { + public final fun getDEFAULT_REDACTED_HEADERS ()Ljava/util/Set; +} + +public final class dev/sharingan/MqttDirection : java/lang/Enum { + public static final field PUBLISH Ldev/sharingan/MqttDirection; + public static final field RECEIVE Ldev/sharingan/MqttDirection; + public static final field SUBSCRIBE Ldev/sharingan/MqttDirection; + public static fun getEntries ()Lkotlin/enums/EnumEntries; + public static fun valueOf (Ljava/lang/String;)Ldev/sharingan/MqttDirection; + public static fun values ()[Ldev/sharingan/MqttDirection; +} + +public final class dev/sharingan/MqttEvent : dev/sharingan/SharinganEvent { + public fun (Ljava/lang/String;JLdev/sharingan/MqttDirection;Ljava/lang/String;IZLjava/lang/String;Ljava/lang/Long;Ljava/lang/String;)V + public synthetic fun (Ljava/lang/String;JLdev/sharingan/MqttDirection;Ljava/lang/String;IZLjava/lang/String;Ljava/lang/Long;Ljava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/lang/String; + public final fun component2 ()J + public final fun component3 ()Ldev/sharingan/MqttDirection; + public final fun component4 ()Ljava/lang/String; + public final fun component5 ()I + public final fun component6 ()Z + public final fun component7 ()Ljava/lang/String; + public final fun component8 ()Ljava/lang/Long; + public final fun component9 ()Ljava/lang/String; + public final fun copy (Ljava/lang/String;JLdev/sharingan/MqttDirection;Ljava/lang/String;IZLjava/lang/String;Ljava/lang/Long;Ljava/lang/String;)Ldev/sharingan/MqttEvent; + public static synthetic fun copy$default (Ldev/sharingan/MqttEvent;Ljava/lang/String;JLdev/sharingan/MqttDirection;Ljava/lang/String;IZLjava/lang/String;Ljava/lang/Long;Ljava/lang/String;ILjava/lang/Object;)Ldev/sharingan/MqttEvent; + public fun equals (Ljava/lang/Object;)Z + public final fun getDirection ()Ldev/sharingan/MqttDirection; + public fun getError ()Ljava/lang/String; + public fun getId ()Ljava/lang/String; + public final fun getPayload ()Ljava/lang/String; + public final fun getPayloadSizeBytes ()Ljava/lang/Long; + public final fun getQos ()I + public final fun getRetained ()Z + public fun getTimestampMillis ()J + public final fun getTopic ()Ljava/lang/String; + public fun hashCode ()I + public fun isFailure ()Z + public fun toString ()Ljava/lang/String; +} + +public final class dev/sharingan/MqttLogger { + public fun (Ldev/sharingan/SharinganStore;)V + public final fun publish (Ljava/lang/String;Ljava/lang/String;IZLjava/lang/String;)V + public static synthetic fun publish$default (Ldev/sharingan/MqttLogger;Ljava/lang/String;Ljava/lang/String;IZLjava/lang/String;ILjava/lang/Object;)V + public final fun received (Ljava/lang/String;Ljava/lang/String;IZ)V + public static synthetic fun received$default (Ldev/sharingan/MqttLogger;Ljava/lang/String;Ljava/lang/String;IZILjava/lang/Object;)V + public final fun subscribed (Ljava/lang/String;I)V + public static synthetic fun subscribed$default (Ldev/sharingan/MqttLogger;Ljava/lang/String;IILjava/lang/Object;)V +} + +public final class dev/sharingan/Sharingan { + public static final field INSTANCE Ldev/sharingan/Sharingan; + public final fun clear ()V + public final fun getBle ()Ldev/sharingan/BleLogger; + public final fun getEvents ()Lkotlinx/coroutines/flow/StateFlow; + public final fun getHttp ()Ldev/sharingan/HttpLogger; + public final fun getMqtt ()Ldev/sharingan/MqttLogger; + public final fun getStore ()Ldev/sharingan/SharinganStore; + public final fun isRecording ()Lkotlinx/coroutines/flow/StateFlow; + public final fun setRecording (Z)V +} + +public final class dev/sharingan/SharinganAndroidKt { + public static final fun setNotificationEnabled (Ldev/sharingan/Sharingan;Z)V + public static final fun show (Ldev/sharingan/Sharingan;Landroid/content/Context;)V +} + +public abstract interface class dev/sharingan/SharinganEvent { + public abstract fun getError ()Ljava/lang/String; + public abstract fun getId ()Ljava/lang/String; + public abstract fun getTimestampMillis ()J + public fun isFailure ()Z +} + +public final class dev/sharingan/SharinganEvent$DefaultImpls { + public static fun isFailure (Ldev/sharingan/SharinganEvent;)Z +} + +public final class dev/sharingan/SharinganExport { + public static final field INSTANCE Ldev/sharingan/SharinganExport; + public final fun agentMarkdown (Ldev/sharingan/SharinganEvent;)Ljava/lang/String; + public final fun agentMarkdown (Ljava/util/List;)Ljava/lang/String; + public final fun curl (Ldev/sharingan/HttpEvent;)Ljava/lang/String; + public final fun json (Ldev/sharingan/SharinganEvent;)Ljava/lang/String; + public final fun sessionJson (Ljava/util/List;)Ljava/lang/String; + public final fun summary (Ljava/util/List;)Ljava/lang/String; +} + +public final class dev/sharingan/SharinganStore { + public static final field Companion Ldev/sharingan/SharinganStore$Companion; + public static final field DEFAULT_CAPACITY I + public fun ()V + public fun (I)V + public synthetic fun (IILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun clear ()V + public final fun getCapacity ()I + public final fun getEvents ()Lkotlinx/coroutines/flow/StateFlow; + public final fun isRecording ()Lkotlinx/coroutines/flow/StateFlow; + public final fun record (Ldev/sharingan/SharinganEvent;)V + public final fun setRecording (Z)V +} + +public final class dev/sharingan/SharinganStore$Companion { +} + +public final class dev/sharingan/TimingPhase { + public fun (Ljava/lang/String;J)V + public final fun component1 ()Ljava/lang/String; + public final fun component2 ()J + public final fun copy (Ljava/lang/String;J)Ldev/sharingan/TimingPhase; + public static synthetic fun copy$default (Ldev/sharingan/TimingPhase;Ljava/lang/String;JILjava/lang/Object;)Ldev/sharingan/TimingPhase; + public fun equals (Ljava/lang/Object;)Z + public final fun getLabel ()Ljava/lang/String; + public final fun getMillis ()J + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class dev/sharingan/ktor/SharinganKtorConfig { + public fun ()V + public final fun getCaptureBodies ()Z + public final fun getMaxBodyBytes ()I + public final fun getRedactedHeaders ()Ljava/util/Set; + public final fun getStore ()Ldev/sharingan/SharinganStore; + public final fun setCaptureBodies (Z)V + public final fun setMaxBodyBytes (I)V + public final fun setRedactedHeaders (Ljava/util/Set;)V + public final fun setStore (Ldev/sharingan/SharinganStore;)V +} + +public final class dev/sharingan/ktor/SharinganKtorKt { + public static final fun getSharinganKtor ()Lio/ktor/client/plugins/api/ClientPlugin; +} + diff --git a/sharingan-noop/api/sharingan-noop.klib.api b/sharingan-noop/api/sharingan-noop.klib.api new file mode 100644 index 0000000..9e6a12e --- /dev/null +++ b/sharingan-noop/api/sharingan-noop.klib.api @@ -0,0 +1,300 @@ +// Klib ABI Dump +// Targets: [iosArm64, iosSimulatorArm64] +// Rendering settings: +// - Signature version: 2 +// - Show manifest properties: true +// - Show declarations: true + +// Library unique name: +final enum class dev.sharingan/BleOperation : kotlin/Enum { // dev.sharingan/BleOperation|null[0] + enum entry CONNECT // dev.sharingan/BleOperation.CONNECT|null[0] + enum entry DISCONNECT // dev.sharingan/BleOperation.DISCONNECT|null[0] + enum entry DISCOVER // dev.sharingan/BleOperation.DISCOVER|null[0] + enum entry ERROR // dev.sharingan/BleOperation.ERROR|null[0] + enum entry NOTIFY // dev.sharingan/BleOperation.NOTIFY|null[0] + enum entry READ // dev.sharingan/BleOperation.READ|null[0] + enum entry WRITE // dev.sharingan/BleOperation.WRITE|null[0] + + final val entries // dev.sharingan/BleOperation.entries|#static{}entries[0] + final fun (): kotlin.enums/EnumEntries // dev.sharingan/BleOperation.entries.|#static(){}[0] + + final fun valueOf(kotlin/String): dev.sharingan/BleOperation // dev.sharingan/BleOperation.valueOf|valueOf#static(kotlin.String){}[0] + final fun values(): kotlin/Array // dev.sharingan/BleOperation.values|values#static(){}[0] +} + +final enum class dev.sharingan/MqttDirection : kotlin/Enum { // dev.sharingan/MqttDirection|null[0] + enum entry PUBLISH // dev.sharingan/MqttDirection.PUBLISH|null[0] + enum entry RECEIVE // dev.sharingan/MqttDirection.RECEIVE|null[0] + enum entry SUBSCRIBE // dev.sharingan/MqttDirection.SUBSCRIBE|null[0] + + final val entries // dev.sharingan/MqttDirection.entries|#static{}entries[0] + final fun (): kotlin.enums/EnumEntries // dev.sharingan/MqttDirection.entries.|#static(){}[0] + + final fun valueOf(kotlin/String): dev.sharingan/MqttDirection // dev.sharingan/MqttDirection.valueOf|valueOf#static(kotlin.String){}[0] + final fun values(): kotlin/Array // dev.sharingan/MqttDirection.values|values#static(){}[0] +} + +sealed interface dev.sharingan/SharinganEvent { // dev.sharingan/SharinganEvent|null[0] + abstract val error // dev.sharingan/SharinganEvent.error|{}error[0] + abstract fun (): kotlin/String? // dev.sharingan/SharinganEvent.error.|(){}[0] + abstract val id // dev.sharingan/SharinganEvent.id|{}id[0] + abstract fun (): kotlin/String // dev.sharingan/SharinganEvent.id.|(){}[0] + abstract val timestampMillis // dev.sharingan/SharinganEvent.timestampMillis|{}timestampMillis[0] + abstract fun (): kotlin/Long // dev.sharingan/SharinganEvent.timestampMillis.|(){}[0] + open val isFailure // dev.sharingan/SharinganEvent.isFailure|{}isFailure[0] + open fun (): kotlin/Boolean // dev.sharingan/SharinganEvent.isFailure.|(){}[0] +} + +final class dev.sharingan.ktor/SharinganKtorConfig { // dev.sharingan.ktor/SharinganKtorConfig|null[0] + constructor () // dev.sharingan.ktor/SharinganKtorConfig.|(){}[0] + + final var captureBodies // dev.sharingan.ktor/SharinganKtorConfig.captureBodies|{}captureBodies[0] + final fun (): kotlin/Boolean // dev.sharingan.ktor/SharinganKtorConfig.captureBodies.|(){}[0] + final fun (kotlin/Boolean) // dev.sharingan.ktor/SharinganKtorConfig.captureBodies.|(kotlin.Boolean){}[0] + final var maxBodyBytes // dev.sharingan.ktor/SharinganKtorConfig.maxBodyBytes|{}maxBodyBytes[0] + final fun (): kotlin/Int // dev.sharingan.ktor/SharinganKtorConfig.maxBodyBytes.|(){}[0] + final fun (kotlin/Int) // dev.sharingan.ktor/SharinganKtorConfig.maxBodyBytes.|(kotlin.Int){}[0] + final var redactedHeaders // dev.sharingan.ktor/SharinganKtorConfig.redactedHeaders|{}redactedHeaders[0] + final fun (): kotlin.collections/Set // dev.sharingan.ktor/SharinganKtorConfig.redactedHeaders.|(){}[0] + final fun (kotlin.collections/Set) // dev.sharingan.ktor/SharinganKtorConfig.redactedHeaders.|(kotlin.collections.Set){}[0] + final var store // dev.sharingan.ktor/SharinganKtorConfig.store|{}store[0] + final fun (): dev.sharingan/SharinganStore // dev.sharingan.ktor/SharinganKtorConfig.store.|(){}[0] + final fun (dev.sharingan/SharinganStore) // dev.sharingan.ktor/SharinganKtorConfig.store.|(dev.sharingan.SharinganStore){}[0] +} + +final class dev.sharingan/BleEvent : dev.sharingan/SharinganEvent { // dev.sharingan/BleEvent|null[0] + constructor (kotlin/String, kotlin/Long, dev.sharingan/BleOperation, kotlin/String, kotlin/String? = ..., kotlin/String? = ..., kotlin/String? = ..., kotlin/Long? = ..., kotlin/String? = ...) // dev.sharingan/BleEvent.|(kotlin.String;kotlin.Long;dev.sharingan.BleOperation;kotlin.String;kotlin.String?;kotlin.String?;kotlin.String?;kotlin.Long?;kotlin.String?){}[0] + + final val characteristic // dev.sharingan/BleEvent.characteristic|{}characteristic[0] + final fun (): kotlin/String? // dev.sharingan/BleEvent.characteristic.|(){}[0] + final val device // dev.sharingan/BleEvent.device|{}device[0] + final fun (): kotlin/String // dev.sharingan/BleEvent.device.|(){}[0] + final val error // dev.sharingan/BleEvent.error|{}error[0] + final fun (): kotlin/String? // dev.sharingan/BleEvent.error.|(){}[0] + final val id // dev.sharingan/BleEvent.id|{}id[0] + final fun (): kotlin/String // dev.sharingan/BleEvent.id.|(){}[0] + final val isFailure // dev.sharingan/BleEvent.isFailure|{}isFailure[0] + final fun (): kotlin/Boolean // dev.sharingan/BleEvent.isFailure.|(){}[0] + final val operation // dev.sharingan/BleEvent.operation|{}operation[0] + final fun (): dev.sharingan/BleOperation // dev.sharingan/BleEvent.operation.|(){}[0] + final val payload // dev.sharingan/BleEvent.payload|{}payload[0] + final fun (): kotlin/String? // dev.sharingan/BleEvent.payload.|(){}[0] + final val sizeBytes // dev.sharingan/BleEvent.sizeBytes|{}sizeBytes[0] + final fun (): kotlin/Long? // dev.sharingan/BleEvent.sizeBytes.|(){}[0] + final val timestampMillis // dev.sharingan/BleEvent.timestampMillis|{}timestampMillis[0] + final fun (): kotlin/Long // dev.sharingan/BleEvent.timestampMillis.|(){}[0] + final val uuid // dev.sharingan/BleEvent.uuid|{}uuid[0] + final fun (): kotlin/String? // dev.sharingan/BleEvent.uuid.|(){}[0] + + final fun component1(): kotlin/String // dev.sharingan/BleEvent.component1|component1(){}[0] + final fun component2(): kotlin/Long // dev.sharingan/BleEvent.component2|component2(){}[0] + final fun component3(): dev.sharingan/BleOperation // dev.sharingan/BleEvent.component3|component3(){}[0] + final fun component4(): kotlin/String // dev.sharingan/BleEvent.component4|component4(){}[0] + final fun component5(): kotlin/String? // dev.sharingan/BleEvent.component5|component5(){}[0] + final fun component6(): kotlin/String? // dev.sharingan/BleEvent.component6|component6(){}[0] + final fun component7(): kotlin/String? // dev.sharingan/BleEvent.component7|component7(){}[0] + final fun component8(): kotlin/Long? // dev.sharingan/BleEvent.component8|component8(){}[0] + final fun component9(): kotlin/String? // dev.sharingan/BleEvent.component9|component9(){}[0] + final fun copy(kotlin/String = ..., kotlin/Long = ..., dev.sharingan/BleOperation = ..., kotlin/String = ..., kotlin/String? = ..., kotlin/String? = ..., kotlin/String? = ..., kotlin/Long? = ..., kotlin/String? = ...): dev.sharingan/BleEvent // dev.sharingan/BleEvent.copy|copy(kotlin.String;kotlin.Long;dev.sharingan.BleOperation;kotlin.String;kotlin.String?;kotlin.String?;kotlin.String?;kotlin.Long?;kotlin.String?){}[0] + final fun equals(kotlin/Any?): kotlin/Boolean // dev.sharingan/BleEvent.equals|equals(kotlin.Any?){}[0] + final fun hashCode(): kotlin/Int // dev.sharingan/BleEvent.hashCode|hashCode(){}[0] + final fun toString(): kotlin/String // dev.sharingan/BleEvent.toString|toString(){}[0] +} + +final class dev.sharingan/BleLogger { // dev.sharingan/BleLogger|null[0] + constructor (dev.sharingan/SharinganStore) // dev.sharingan/BleLogger.|(dev.sharingan.SharinganStore){}[0] + + final fun connect(kotlin/String, kotlin/String? = ...) // dev.sharingan/BleLogger.connect|connect(kotlin.String;kotlin.String?){}[0] + final fun disconnect(kotlin/String, kotlin/String? = ...) // dev.sharingan/BleLogger.disconnect|disconnect(kotlin.String;kotlin.String?){}[0] + final fun discover(kotlin/String, kotlin/String? = ..., kotlin/String? = ..., kotlin/String? = ...) // dev.sharingan/BleLogger.discover|discover(kotlin.String;kotlin.String?;kotlin.String?;kotlin.String?){}[0] + final fun error(kotlin/String, kotlin/String, kotlin/String? = ..., kotlin/String? = ...) // dev.sharingan/BleLogger.error|error(kotlin.String;kotlin.String;kotlin.String?;kotlin.String?){}[0] + final fun notify(kotlin/String, kotlin/String? = ..., kotlin/String? = ..., kotlin/String? = ...) // dev.sharingan/BleLogger.notify|notify(kotlin.String;kotlin.String?;kotlin.String?;kotlin.String?){}[0] + final fun read(kotlin/String, kotlin/String? = ..., kotlin/String? = ..., kotlin/String? = ..., kotlin/String? = ...) // dev.sharingan/BleLogger.read|read(kotlin.String;kotlin.String?;kotlin.String?;kotlin.String?;kotlin.String?){}[0] + final fun write(kotlin/String, kotlin/String? = ..., kotlin/String? = ..., kotlin/String? = ..., kotlin/String? = ...) // dev.sharingan/BleLogger.write|write(kotlin.String;kotlin.String?;kotlin.String?;kotlin.String?;kotlin.String?){}[0] +} + +final class dev.sharingan/HttpEvent : dev.sharingan/SharinganEvent { // dev.sharingan/HttpEvent|null[0] + constructor (kotlin/String, kotlin/Long, kotlin/String, kotlin/String, kotlin/Int? = ..., kotlin/Long? = ..., kotlin.collections/List> = ..., kotlin.collections/List> = ..., kotlin/String? = ..., kotlin/String? = ..., kotlin/String? = ..., kotlin/Long? = ..., kotlin.collections/List = ..., kotlin/String? = ...) // dev.sharingan/HttpEvent.|(kotlin.String;kotlin.Long;kotlin.String;kotlin.String;kotlin.Int?;kotlin.Long?;kotlin.collections.List>;kotlin.collections.List>;kotlin.String?;kotlin.String?;kotlin.String?;kotlin.Long?;kotlin.collections.List;kotlin.String?){}[0] + + final val contentType // dev.sharingan/HttpEvent.contentType|{}contentType[0] + final fun (): kotlin/String? // dev.sharingan/HttpEvent.contentType.|(){}[0] + final val durationMillis // dev.sharingan/HttpEvent.durationMillis|{}durationMillis[0] + final fun (): kotlin/Long? // dev.sharingan/HttpEvent.durationMillis.|(){}[0] + final val error // dev.sharingan/HttpEvent.error|{}error[0] + final fun (): kotlin/String? // dev.sharingan/HttpEvent.error.|(){}[0] + final val host // dev.sharingan/HttpEvent.host|{}host[0] + final fun (): kotlin/String // dev.sharingan/HttpEvent.host.|(){}[0] + final val id // dev.sharingan/HttpEvent.id|{}id[0] + final fun (): kotlin/String // dev.sharingan/HttpEvent.id.|(){}[0] + final val isFailure // dev.sharingan/HttpEvent.isFailure|{}isFailure[0] + final fun (): kotlin/Boolean // dev.sharingan/HttpEvent.isFailure.|(){}[0] + final val method // dev.sharingan/HttpEvent.method|{}method[0] + final fun (): kotlin/String // dev.sharingan/HttpEvent.method.|(){}[0] + final val path // dev.sharingan/HttpEvent.path|{}path[0] + final fun (): kotlin/String // dev.sharingan/HttpEvent.path.|(){}[0] + final val requestBody // dev.sharingan/HttpEvent.requestBody|{}requestBody[0] + final fun (): kotlin/String? // dev.sharingan/HttpEvent.requestBody.|(){}[0] + final val requestHeaders // dev.sharingan/HttpEvent.requestHeaders|{}requestHeaders[0] + final fun (): kotlin.collections/List> // dev.sharingan/HttpEvent.requestHeaders.|(){}[0] + final val responseBody // dev.sharingan/HttpEvent.responseBody|{}responseBody[0] + final fun (): kotlin/String? // dev.sharingan/HttpEvent.responseBody.|(){}[0] + final val responseHeaders // dev.sharingan/HttpEvent.responseHeaders|{}responseHeaders[0] + final fun (): kotlin.collections/List> // dev.sharingan/HttpEvent.responseHeaders.|(){}[0] + final val responseSizeBytes // dev.sharingan/HttpEvent.responseSizeBytes|{}responseSizeBytes[0] + final fun (): kotlin/Long? // dev.sharingan/HttpEvent.responseSizeBytes.|(){}[0] + final val statusCode // dev.sharingan/HttpEvent.statusCode|{}statusCode[0] + final fun (): kotlin/Int? // dev.sharingan/HttpEvent.statusCode.|(){}[0] + final val timestampMillis // dev.sharingan/HttpEvent.timestampMillis|{}timestampMillis[0] + final fun (): kotlin/Long // dev.sharingan/HttpEvent.timestampMillis.|(){}[0] + final val timing // dev.sharingan/HttpEvent.timing|{}timing[0] + final fun (): kotlin.collections/List // dev.sharingan/HttpEvent.timing.|(){}[0] + final val url // dev.sharingan/HttpEvent.url|{}url[0] + final fun (): kotlin/String // dev.sharingan/HttpEvent.url.|(){}[0] + + final fun component1(): kotlin/String // dev.sharingan/HttpEvent.component1|component1(){}[0] + final fun component10(): kotlin/String? // dev.sharingan/HttpEvent.component10|component10(){}[0] + final fun component11(): kotlin/String? // dev.sharingan/HttpEvent.component11|component11(){}[0] + final fun component12(): kotlin/Long? // dev.sharingan/HttpEvent.component12|component12(){}[0] + final fun component13(): kotlin.collections/List // dev.sharingan/HttpEvent.component13|component13(){}[0] + final fun component14(): kotlin/String? // dev.sharingan/HttpEvent.component14|component14(){}[0] + final fun component2(): kotlin/Long // dev.sharingan/HttpEvent.component2|component2(){}[0] + final fun component3(): kotlin/String // dev.sharingan/HttpEvent.component3|component3(){}[0] + final fun component4(): kotlin/String // dev.sharingan/HttpEvent.component4|component4(){}[0] + final fun component5(): kotlin/Int? // dev.sharingan/HttpEvent.component5|component5(){}[0] + final fun component6(): kotlin/Long? // dev.sharingan/HttpEvent.component6|component6(){}[0] + final fun component7(): kotlin.collections/List> // dev.sharingan/HttpEvent.component7|component7(){}[0] + final fun component8(): kotlin.collections/List> // dev.sharingan/HttpEvent.component8|component8(){}[0] + final fun component9(): kotlin/String? // dev.sharingan/HttpEvent.component9|component9(){}[0] + final fun copy(kotlin/String = ..., kotlin/Long = ..., kotlin/String = ..., kotlin/String = ..., kotlin/Int? = ..., kotlin/Long? = ..., kotlin.collections/List> = ..., kotlin.collections/List> = ..., kotlin/String? = ..., kotlin/String? = ..., kotlin/String? = ..., kotlin/Long? = ..., kotlin.collections/List = ..., kotlin/String? = ...): dev.sharingan/HttpEvent // dev.sharingan/HttpEvent.copy|copy(kotlin.String;kotlin.Long;kotlin.String;kotlin.String;kotlin.Int?;kotlin.Long?;kotlin.collections.List>;kotlin.collections.List>;kotlin.String?;kotlin.String?;kotlin.String?;kotlin.Long?;kotlin.collections.List;kotlin.String?){}[0] + final fun equals(kotlin/Any?): kotlin/Boolean // dev.sharingan/HttpEvent.equals|equals(kotlin.Any?){}[0] + final fun hashCode(): kotlin/Int // dev.sharingan/HttpEvent.hashCode|hashCode(){}[0] + final fun toString(): kotlin/String // dev.sharingan/HttpEvent.toString|toString(){}[0] +} + +final class dev.sharingan/HttpLogger { // dev.sharingan/HttpLogger|null[0] + constructor (dev.sharingan/SharinganStore, kotlin.collections/Set = ...) // dev.sharingan/HttpLogger.|(dev.sharingan.SharinganStore;kotlin.collections.Set){}[0] + + final fun log(kotlin/String, kotlin/String, kotlin/Int? = ..., kotlin/Long? = ..., kotlin.collections/List> = ..., kotlin.collections/List> = ..., kotlin/String? = ..., kotlin/String? = ..., kotlin/String? = ..., kotlin/Long? = ..., kotlin.collections/List = ..., kotlin/String? = ...) // dev.sharingan/HttpLogger.log|log(kotlin.String;kotlin.String;kotlin.Int?;kotlin.Long?;kotlin.collections.List>;kotlin.collections.List>;kotlin.String?;kotlin.String?;kotlin.String?;kotlin.Long?;kotlin.collections.List;kotlin.String?){}[0] + + final object Companion { // dev.sharingan/HttpLogger.Companion|null[0] + final const val REDACTED_VALUE // dev.sharingan/HttpLogger.Companion.REDACTED_VALUE|{}REDACTED_VALUE[0] + final fun (): kotlin/String // dev.sharingan/HttpLogger.Companion.REDACTED_VALUE.|(){}[0] + + final val DEFAULT_REDACTED_HEADERS // dev.sharingan/HttpLogger.Companion.DEFAULT_REDACTED_HEADERS|{}DEFAULT_REDACTED_HEADERS[0] + final fun (): kotlin.collections/Set // dev.sharingan/HttpLogger.Companion.DEFAULT_REDACTED_HEADERS.|(){}[0] + } +} + +final class dev.sharingan/MqttEvent : dev.sharingan/SharinganEvent { // dev.sharingan/MqttEvent|null[0] + constructor (kotlin/String, kotlin/Long, dev.sharingan/MqttDirection, kotlin/String, kotlin/Int = ..., kotlin/Boolean = ..., kotlin/String? = ..., kotlin/Long? = ..., kotlin/String? = ...) // dev.sharingan/MqttEvent.|(kotlin.String;kotlin.Long;dev.sharingan.MqttDirection;kotlin.String;kotlin.Int;kotlin.Boolean;kotlin.String?;kotlin.Long?;kotlin.String?){}[0] + + final val direction // dev.sharingan/MqttEvent.direction|{}direction[0] + final fun (): dev.sharingan/MqttDirection // dev.sharingan/MqttEvent.direction.|(){}[0] + final val error // dev.sharingan/MqttEvent.error|{}error[0] + final fun (): kotlin/String? // dev.sharingan/MqttEvent.error.|(){}[0] + final val id // dev.sharingan/MqttEvent.id|{}id[0] + final fun (): kotlin/String // dev.sharingan/MqttEvent.id.|(){}[0] + final val payload // dev.sharingan/MqttEvent.payload|{}payload[0] + final fun (): kotlin/String? // dev.sharingan/MqttEvent.payload.|(){}[0] + final val payloadSizeBytes // dev.sharingan/MqttEvent.payloadSizeBytes|{}payloadSizeBytes[0] + final fun (): kotlin/Long? // dev.sharingan/MqttEvent.payloadSizeBytes.|(){}[0] + final val qos // dev.sharingan/MqttEvent.qos|{}qos[0] + final fun (): kotlin/Int // dev.sharingan/MqttEvent.qos.|(){}[0] + final val retained // dev.sharingan/MqttEvent.retained|{}retained[0] + final fun (): kotlin/Boolean // dev.sharingan/MqttEvent.retained.|(){}[0] + final val timestampMillis // dev.sharingan/MqttEvent.timestampMillis|{}timestampMillis[0] + final fun (): kotlin/Long // dev.sharingan/MqttEvent.timestampMillis.|(){}[0] + final val topic // dev.sharingan/MqttEvent.topic|{}topic[0] + final fun (): kotlin/String // dev.sharingan/MqttEvent.topic.|(){}[0] + + final fun component1(): kotlin/String // dev.sharingan/MqttEvent.component1|component1(){}[0] + final fun component2(): kotlin/Long // dev.sharingan/MqttEvent.component2|component2(){}[0] + final fun component3(): dev.sharingan/MqttDirection // dev.sharingan/MqttEvent.component3|component3(){}[0] + final fun component4(): kotlin/String // dev.sharingan/MqttEvent.component4|component4(){}[0] + final fun component5(): kotlin/Int // dev.sharingan/MqttEvent.component5|component5(){}[0] + final fun component6(): kotlin/Boolean // dev.sharingan/MqttEvent.component6|component6(){}[0] + final fun component7(): kotlin/String? // dev.sharingan/MqttEvent.component7|component7(){}[0] + final fun component8(): kotlin/Long? // dev.sharingan/MqttEvent.component8|component8(){}[0] + final fun component9(): kotlin/String? // dev.sharingan/MqttEvent.component9|component9(){}[0] + final fun copy(kotlin/String = ..., kotlin/Long = ..., dev.sharingan/MqttDirection = ..., kotlin/String = ..., kotlin/Int = ..., kotlin/Boolean = ..., kotlin/String? = ..., kotlin/Long? = ..., kotlin/String? = ...): dev.sharingan/MqttEvent // dev.sharingan/MqttEvent.copy|copy(kotlin.String;kotlin.Long;dev.sharingan.MqttDirection;kotlin.String;kotlin.Int;kotlin.Boolean;kotlin.String?;kotlin.Long?;kotlin.String?){}[0] + final fun equals(kotlin/Any?): kotlin/Boolean // dev.sharingan/MqttEvent.equals|equals(kotlin.Any?){}[0] + final fun hashCode(): kotlin/Int // dev.sharingan/MqttEvent.hashCode|hashCode(){}[0] + final fun toString(): kotlin/String // dev.sharingan/MqttEvent.toString|toString(){}[0] +} + +final class dev.sharingan/MqttLogger { // dev.sharingan/MqttLogger|null[0] + constructor (dev.sharingan/SharinganStore) // dev.sharingan/MqttLogger.|(dev.sharingan.SharinganStore){}[0] + + final fun publish(kotlin/String, kotlin/String?, kotlin/Int = ..., kotlin/Boolean = ..., kotlin/String? = ...) // dev.sharingan/MqttLogger.publish|publish(kotlin.String;kotlin.String?;kotlin.Int;kotlin.Boolean;kotlin.String?){}[0] + final fun received(kotlin/String, kotlin/String?, kotlin/Int = ..., kotlin/Boolean = ...) // dev.sharingan/MqttLogger.received|received(kotlin.String;kotlin.String?;kotlin.Int;kotlin.Boolean){}[0] + final fun subscribed(kotlin/String, kotlin/Int = ...) // dev.sharingan/MqttLogger.subscribed|subscribed(kotlin.String;kotlin.Int){}[0] +} + +final class dev.sharingan/SharinganStore { // dev.sharingan/SharinganStore|null[0] + constructor (kotlin/Int = ...) // dev.sharingan/SharinganStore.|(kotlin.Int){}[0] + + final val capacity // dev.sharingan/SharinganStore.capacity|{}capacity[0] + final fun (): kotlin/Int // dev.sharingan/SharinganStore.capacity.|(){}[0] + final val events // dev.sharingan/SharinganStore.events|{}events[0] + final fun (): kotlinx.coroutines.flow/StateFlow> // dev.sharingan/SharinganStore.events.|(){}[0] + final val isRecording // dev.sharingan/SharinganStore.isRecording|{}isRecording[0] + final fun (): kotlinx.coroutines.flow/StateFlow // dev.sharingan/SharinganStore.isRecording.|(){}[0] + + final fun clear() // dev.sharingan/SharinganStore.clear|clear(){}[0] + final fun record(dev.sharingan/SharinganEvent) // dev.sharingan/SharinganStore.record|record(dev.sharingan.SharinganEvent){}[0] + final fun setRecording(kotlin/Boolean) // dev.sharingan/SharinganStore.setRecording|setRecording(kotlin.Boolean){}[0] + + final object Companion { // dev.sharingan/SharinganStore.Companion|null[0] + final const val DEFAULT_CAPACITY // dev.sharingan/SharinganStore.Companion.DEFAULT_CAPACITY|{}DEFAULT_CAPACITY[0] + final fun (): kotlin/Int // dev.sharingan/SharinganStore.Companion.DEFAULT_CAPACITY.|(){}[0] + } +} + +final class dev.sharingan/TimingPhase { // dev.sharingan/TimingPhase|null[0] + constructor (kotlin/String, kotlin/Long) // dev.sharingan/TimingPhase.|(kotlin.String;kotlin.Long){}[0] + + final val label // dev.sharingan/TimingPhase.label|{}label[0] + final fun (): kotlin/String // dev.sharingan/TimingPhase.label.|(){}[0] + final val millis // dev.sharingan/TimingPhase.millis|{}millis[0] + final fun (): kotlin/Long // dev.sharingan/TimingPhase.millis.|(){}[0] + + final fun component1(): kotlin/String // dev.sharingan/TimingPhase.component1|component1(){}[0] + final fun component2(): kotlin/Long // dev.sharingan/TimingPhase.component2|component2(){}[0] + final fun copy(kotlin/String = ..., kotlin/Long = ...): dev.sharingan/TimingPhase // dev.sharingan/TimingPhase.copy|copy(kotlin.String;kotlin.Long){}[0] + final fun equals(kotlin/Any?): kotlin/Boolean // dev.sharingan/TimingPhase.equals|equals(kotlin.Any?){}[0] + final fun hashCode(): kotlin/Int // dev.sharingan/TimingPhase.hashCode|hashCode(){}[0] + final fun toString(): kotlin/String // dev.sharingan/TimingPhase.toString|toString(){}[0] +} + +final object dev.sharingan/Sharingan { // dev.sharingan/Sharingan|null[0] + final val ble // dev.sharingan/Sharingan.ble|{}ble[0] + final fun (): dev.sharingan/BleLogger // dev.sharingan/Sharingan.ble.|(){}[0] + final val events // dev.sharingan/Sharingan.events|{}events[0] + final fun (): kotlinx.coroutines.flow/StateFlow> // dev.sharingan/Sharingan.events.|(){}[0] + final val http // dev.sharingan/Sharingan.http|{}http[0] + final fun (): dev.sharingan/HttpLogger // dev.sharingan/Sharingan.http.|(){}[0] + final val isRecording // dev.sharingan/Sharingan.isRecording|{}isRecording[0] + final fun (): kotlinx.coroutines.flow/StateFlow // dev.sharingan/Sharingan.isRecording.|(){}[0] + final val mqtt // dev.sharingan/Sharingan.mqtt|{}mqtt[0] + final fun (): dev.sharingan/MqttLogger // dev.sharingan/Sharingan.mqtt.|(){}[0] + final val store // dev.sharingan/Sharingan.store|{}store[0] + final fun (): dev.sharingan/SharinganStore // dev.sharingan/Sharingan.store.|(){}[0] + + final fun clear() // dev.sharingan/Sharingan.clear|clear(){}[0] + final fun setRecording(kotlin/Boolean) // dev.sharingan/Sharingan.setRecording|setRecording(kotlin.Boolean){}[0] +} + +final object dev.sharingan/SharinganExport { // dev.sharingan/SharinganExport|null[0] + final fun agentMarkdown(dev.sharingan/SharinganEvent): kotlin/String // dev.sharingan/SharinganExport.agentMarkdown|agentMarkdown(dev.sharingan.SharinganEvent){}[0] + final fun agentMarkdown(kotlin.collections/List): kotlin/String // dev.sharingan/SharinganExport.agentMarkdown|agentMarkdown(kotlin.collections.List){}[0] + final fun curl(dev.sharingan/HttpEvent): kotlin/String // dev.sharingan/SharinganExport.curl|curl(dev.sharingan.HttpEvent){}[0] + final fun json(dev.sharingan/SharinganEvent): kotlin/String // dev.sharingan/SharinganExport.json|json(dev.sharingan.SharinganEvent){}[0] + final fun sessionJson(kotlin.collections/List): kotlin/String // dev.sharingan/SharinganExport.sessionJson|sessionJson(kotlin.collections.List){}[0] + final fun summary(kotlin.collections/List): kotlin/String // dev.sharingan/SharinganExport.summary|summary(kotlin.collections.List){}[0] +} + +final val dev.sharingan.ktor/SharinganKtor // dev.sharingan.ktor/SharinganKtor|{}SharinganKtor[0] + final fun (): io.ktor.client.plugins.api/ClientPlugin // dev.sharingan.ktor/SharinganKtor.|(){}[0] + +final fun dev.sharingan/SharinganViewController(): platform.UIKit/UIViewController // dev.sharingan/SharinganViewController|SharinganViewController(){}[0] +final fun dev.sharingan/presentSharingan(kotlin/Boolean = ...) // dev.sharingan/presentSharingan|presentSharingan(kotlin.Boolean){}[0] diff --git a/sharingan/api/sharingan.api b/sharingan/api/sharingan.api new file mode 100644 index 0000000..6617aa7 --- /dev/null +++ b/sharingan/api/sharingan.api @@ -0,0 +1,321 @@ +public final class dev/sharingan/BleEvent : dev/sharingan/SharinganEvent { + public static final field $stable I + public fun (Ljava/lang/String;JLdev/sharingan/BleOperation;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Long;Ljava/lang/String;)V + public synthetic fun (Ljava/lang/String;JLdev/sharingan/BleOperation;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Long;Ljava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/lang/String; + public final fun component2 ()J + public final fun component3 ()Ldev/sharingan/BleOperation; + public final fun component4 ()Ljava/lang/String; + public final fun component5 ()Ljava/lang/String; + public final fun component6 ()Ljava/lang/String; + public final fun component7 ()Ljava/lang/String; + public final fun component8 ()Ljava/lang/Long; + public final fun component9 ()Ljava/lang/String; + public final fun copy (Ljava/lang/String;JLdev/sharingan/BleOperation;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Long;Ljava/lang/String;)Ldev/sharingan/BleEvent; + public static synthetic fun copy$default (Ldev/sharingan/BleEvent;Ljava/lang/String;JLdev/sharingan/BleOperation;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Long;Ljava/lang/String;ILjava/lang/Object;)Ldev/sharingan/BleEvent; + public fun equals (Ljava/lang/Object;)Z + public final fun getCharacteristic ()Ljava/lang/String; + public final fun getDevice ()Ljava/lang/String; + public fun getError ()Ljava/lang/String; + public fun getId ()Ljava/lang/String; + public final fun getOperation ()Ldev/sharingan/BleOperation; + public final fun getPayload ()Ljava/lang/String; + public final fun getSizeBytes ()Ljava/lang/Long; + public fun getTimestampMillis ()J + public final fun getUuid ()Ljava/lang/String; + public fun hashCode ()I + public fun isFailure ()Z + public fun toString ()Ljava/lang/String; +} + +public final class dev/sharingan/BleLogger { + public static final field $stable I + public fun (Ldev/sharingan/SharinganStore;)V + public final fun connect (Ljava/lang/String;Ljava/lang/String;)V + public static synthetic fun connect$default (Ldev/sharingan/BleLogger;Ljava/lang/String;Ljava/lang/String;ILjava/lang/Object;)V + public final fun disconnect (Ljava/lang/String;Ljava/lang/String;)V + public static synthetic fun disconnect$default (Ldev/sharingan/BleLogger;Ljava/lang/String;Ljava/lang/String;ILjava/lang/Object;)V + public final fun discover (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V + public static synthetic fun discover$default (Ldev/sharingan/BleLogger;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILjava/lang/Object;)V + public final fun error (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V + public static synthetic fun error$default (Ldev/sharingan/BleLogger;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILjava/lang/Object;)V + public final fun notify (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V + public static synthetic fun notify$default (Ldev/sharingan/BleLogger;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILjava/lang/Object;)V + public final fun read (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V + public static synthetic fun read$default (Ldev/sharingan/BleLogger;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILjava/lang/Object;)V + public final fun write (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V + public static synthetic fun write$default (Ldev/sharingan/BleLogger;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILjava/lang/Object;)V +} + +public final class dev/sharingan/BleOperation : java/lang/Enum { + public static final field CONNECT Ldev/sharingan/BleOperation; + public static final field DISCONNECT Ldev/sharingan/BleOperation; + public static final field DISCOVER Ldev/sharingan/BleOperation; + public static final field ERROR Ldev/sharingan/BleOperation; + public static final field NOTIFY Ldev/sharingan/BleOperation; + public static final field READ Ldev/sharingan/BleOperation; + public static final field WRITE Ldev/sharingan/BleOperation; + public static fun getEntries ()Lkotlin/enums/EnumEntries; + public static fun valueOf (Ljava/lang/String;)Ldev/sharingan/BleOperation; + public static fun values ()[Ldev/sharingan/BleOperation; +} + +public final class dev/sharingan/ComposableSingletons$SharinganActivityKt { + public static final field INSTANCE Ldev/sharingan/ComposableSingletons$SharinganActivityKt; + public fun ()V + public final fun getLambda$-1107772996$io_github_mibrahimdev_sharingan_release ()Lkotlin/jvm/functions/Function2; +} + +public final class dev/sharingan/HttpEvent : dev/sharingan/SharinganEvent { + public static final field $stable I + public fun (Ljava/lang/String;JLjava/lang/String;Ljava/lang/String;Ljava/lang/Integer;Ljava/lang/Long;Ljava/util/List;Ljava/util/List;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Long;Ljava/util/List;Ljava/lang/String;)V + public synthetic fun (Ljava/lang/String;JLjava/lang/String;Ljava/lang/String;Ljava/lang/Integer;Ljava/lang/Long;Ljava/util/List;Ljava/util/List;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Long;Ljava/util/List;Ljava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/lang/String; + public final fun component10 ()Ljava/lang/String; + public final fun component11 ()Ljava/lang/String; + public final fun component12 ()Ljava/lang/Long; + public final fun component13 ()Ljava/util/List; + public final fun component14 ()Ljava/lang/String; + public final fun component2 ()J + public final fun component3 ()Ljava/lang/String; + public final fun component4 ()Ljava/lang/String; + public final fun component5 ()Ljava/lang/Integer; + public final fun component6 ()Ljava/lang/Long; + public final fun component7 ()Ljava/util/List; + public final fun component8 ()Ljava/util/List; + public final fun component9 ()Ljava/lang/String; + public final fun copy (Ljava/lang/String;JLjava/lang/String;Ljava/lang/String;Ljava/lang/Integer;Ljava/lang/Long;Ljava/util/List;Ljava/util/List;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Long;Ljava/util/List;Ljava/lang/String;)Ldev/sharingan/HttpEvent; + public static synthetic fun copy$default (Ldev/sharingan/HttpEvent;Ljava/lang/String;JLjava/lang/String;Ljava/lang/String;Ljava/lang/Integer;Ljava/lang/Long;Ljava/util/List;Ljava/util/List;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Long;Ljava/util/List;Ljava/lang/String;ILjava/lang/Object;)Ldev/sharingan/HttpEvent; + public fun equals (Ljava/lang/Object;)Z + public final fun getContentType ()Ljava/lang/String; + public final fun getDurationMillis ()Ljava/lang/Long; + public fun getError ()Ljava/lang/String; + public final fun getHost ()Ljava/lang/String; + public fun getId ()Ljava/lang/String; + public final fun getMethod ()Ljava/lang/String; + public final fun getPath ()Ljava/lang/String; + public final fun getRequestBody ()Ljava/lang/String; + public final fun getRequestHeaders ()Ljava/util/List; + public final fun getResponseBody ()Ljava/lang/String; + public final fun getResponseHeaders ()Ljava/util/List; + public final fun getResponseSizeBytes ()Ljava/lang/Long; + public final fun getStatusCode ()Ljava/lang/Integer; + public fun getTimestampMillis ()J + public final fun getTiming ()Ljava/util/List; + public final fun getUrl ()Ljava/lang/String; + public fun hashCode ()I + public fun isFailure ()Z + public fun toString ()Ljava/lang/String; +} + +public final class dev/sharingan/HttpLogger { + public static final field $stable I + public static final field Companion Ldev/sharingan/HttpLogger$Companion; + public static final field REDACTED_VALUE Ljava/lang/String; + public fun (Ldev/sharingan/SharinganStore;Ljava/util/Set;)V + public synthetic fun (Ldev/sharingan/SharinganStore;Ljava/util/Set;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun log (Ljava/lang/String;Ljava/lang/String;Ljava/lang/Integer;Ljava/lang/Long;Ljava/util/List;Ljava/util/List;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Long;Ljava/util/List;Ljava/lang/String;)V + public static synthetic fun log$default (Ldev/sharingan/HttpLogger;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Integer;Ljava/lang/Long;Ljava/util/List;Ljava/util/List;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Long;Ljava/util/List;Ljava/lang/String;ILjava/lang/Object;)V +} + +public final class dev/sharingan/HttpLogger$Companion { + public final fun getDEFAULT_REDACTED_HEADERS ()Ljava/util/Set; +} + +public final class dev/sharingan/MqttDirection : java/lang/Enum { + public static final field PUBLISH Ldev/sharingan/MqttDirection; + public static final field RECEIVE Ldev/sharingan/MqttDirection; + public static final field SUBSCRIBE Ldev/sharingan/MqttDirection; + public static fun getEntries ()Lkotlin/enums/EnumEntries; + public static fun valueOf (Ljava/lang/String;)Ldev/sharingan/MqttDirection; + public static fun values ()[Ldev/sharingan/MqttDirection; +} + +public final class dev/sharingan/MqttEvent : dev/sharingan/SharinganEvent { + public static final field $stable I + public fun (Ljava/lang/String;JLdev/sharingan/MqttDirection;Ljava/lang/String;IZLjava/lang/String;Ljava/lang/Long;Ljava/lang/String;)V + public synthetic fun (Ljava/lang/String;JLdev/sharingan/MqttDirection;Ljava/lang/String;IZLjava/lang/String;Ljava/lang/Long;Ljava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/lang/String; + public final fun component2 ()J + public final fun component3 ()Ldev/sharingan/MqttDirection; + public final fun component4 ()Ljava/lang/String; + public final fun component5 ()I + public final fun component6 ()Z + public final fun component7 ()Ljava/lang/String; + public final fun component8 ()Ljava/lang/Long; + public final fun component9 ()Ljava/lang/String; + public final fun copy (Ljava/lang/String;JLdev/sharingan/MqttDirection;Ljava/lang/String;IZLjava/lang/String;Ljava/lang/Long;Ljava/lang/String;)Ldev/sharingan/MqttEvent; + public static synthetic fun copy$default (Ldev/sharingan/MqttEvent;Ljava/lang/String;JLdev/sharingan/MqttDirection;Ljava/lang/String;IZLjava/lang/String;Ljava/lang/Long;Ljava/lang/String;ILjava/lang/Object;)Ldev/sharingan/MqttEvent; + public fun equals (Ljava/lang/Object;)Z + public final fun getDirection ()Ldev/sharingan/MqttDirection; + public fun getError ()Ljava/lang/String; + public fun getId ()Ljava/lang/String; + public final fun getPayload ()Ljava/lang/String; + public final fun getPayloadSizeBytes ()Ljava/lang/Long; + public final fun getQos ()I + public final fun getRetained ()Z + public fun getTimestampMillis ()J + public final fun getTopic ()Ljava/lang/String; + public fun hashCode ()I + public fun isFailure ()Z + public fun toString ()Ljava/lang/String; +} + +public final class dev/sharingan/MqttLogger { + public static final field $stable I + public fun (Ldev/sharingan/SharinganStore;)V + public final fun publish (Ljava/lang/String;Ljava/lang/String;IZLjava/lang/String;)V + public static synthetic fun publish$default (Ldev/sharingan/MqttLogger;Ljava/lang/String;Ljava/lang/String;IZLjava/lang/String;ILjava/lang/Object;)V + public final fun received (Ljava/lang/String;Ljava/lang/String;IZ)V + public static synthetic fun received$default (Ldev/sharingan/MqttLogger;Ljava/lang/String;Ljava/lang/String;IZILjava/lang/Object;)V + public final fun subscribed (Ljava/lang/String;I)V + public static synthetic fun subscribed$default (Ldev/sharingan/MqttLogger;Ljava/lang/String;IILjava/lang/Object;)V +} + +public final class dev/sharingan/Sharingan { + public static final field $stable I + public static final field INSTANCE Ldev/sharingan/Sharingan; + public final fun clear ()V + public final fun getBle ()Ldev/sharingan/BleLogger; + public final fun getEvents ()Lkotlinx/coroutines/flow/StateFlow; + public final fun getHttp ()Ldev/sharingan/HttpLogger; + public final fun getMqtt ()Ldev/sharingan/MqttLogger; + public final fun getStore ()Ldev/sharingan/SharinganStore; + public final fun isRecording ()Lkotlinx/coroutines/flow/StateFlow; + public final fun setRecording (Z)V +} + +public final class dev/sharingan/SharinganActivity : androidx/activity/ComponentActivity { + public static final field $stable I + public fun ()V +} + +public final class dev/sharingan/SharinganAndroidKt { + public static final fun setNotificationEnabled (Ldev/sharingan/Sharingan;Z)V + public static final fun show (Ldev/sharingan/Sharingan;Landroid/content/Context;)V +} + +public abstract interface class dev/sharingan/SharinganEvent { + public abstract fun getError ()Ljava/lang/String; + public abstract fun getId ()Ljava/lang/String; + public abstract fun getTimestampMillis ()J + public fun isFailure ()Z +} + +public final class dev/sharingan/SharinganEvent$DefaultImpls { + public static fun isFailure (Ldev/sharingan/SharinganEvent;)Z +} + +public final class dev/sharingan/SharinganExport { + public static final field $stable I + public static final field INSTANCE Ldev/sharingan/SharinganExport; + public final fun agentMarkdown (Ldev/sharingan/SharinganEvent;)Ljava/lang/String; + public final fun agentMarkdown (Ljava/util/List;)Ljava/lang/String; + public final fun curl (Ldev/sharingan/HttpEvent;)Ljava/lang/String; + public final fun json (Ldev/sharingan/SharinganEvent;)Ljava/lang/String; + public final fun sessionJson (Ljava/util/List;)Ljava/lang/String; + public final fun summary (Ljava/util/List;)Ljava/lang/String; +} + +public final class dev/sharingan/SharinganStore { + public static final field $stable I + public static final field Companion Ldev/sharingan/SharinganStore$Companion; + public static final field DEFAULT_CAPACITY I + public fun ()V + public fun (I)V + public synthetic fun (IILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun clear ()V + public final fun getCapacity ()I + public final fun getEvents ()Lkotlinx/coroutines/flow/StateFlow; + public final fun isRecording ()Lkotlinx/coroutines/flow/StateFlow; + public final fun record (Ldev/sharingan/SharinganEvent;)V + public final fun setRecording (Z)V +} + +public final class dev/sharingan/SharinganStore$Companion { +} + +public final class dev/sharingan/TimingPhase { + public static final field $stable I + public fun (Ljava/lang/String;J)V + public final fun component1 ()Ljava/lang/String; + public final fun component2 ()J + public final fun copy (Ljava/lang/String;J)Ldev/sharingan/TimingPhase; + public static synthetic fun copy$default (Ldev/sharingan/TimingPhase;Ljava/lang/String;JILjava/lang/Object;)Ldev/sharingan/TimingPhase; + public fun equals (Ljava/lang/Object;)Z + public final fun getLabel ()Ljava/lang/String; + public final fun getMillis ()J + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class dev/sharingan/internal/SharinganInitProvider : android/content/ContentProvider { + public static final field $stable I + public fun ()V + public fun delete (Landroid/net/Uri;Ljava/lang/String;[Ljava/lang/String;)I + public fun getType (Landroid/net/Uri;)Ljava/lang/String; + public fun insert (Landroid/net/Uri;Landroid/content/ContentValues;)Landroid/net/Uri; + public fun onCreate ()Z + public fun query (Landroid/net/Uri;[Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;)Landroid/database/Cursor; + public fun update (Landroid/net/Uri;Landroid/content/ContentValues;Ljava/lang/String;[Ljava/lang/String;)I +} + +public final class dev/sharingan/internal/SharinganNotificationReceiver : android/content/BroadcastReceiver { + public static final field $stable I + public static final field Companion Ldev/sharingan/internal/SharinganNotificationReceiver$Companion; + public fun ()V + public fun onReceive (Landroid/content/Context;Landroid/content/Intent;)V +} + +public final class dev/sharingan/internal/SharinganNotificationReceiver$Companion { +} + +public final class dev/sharingan/ktor/SharinganKtorConfig { + public static final field $stable I + public fun ()V + public final fun getCaptureBodies ()Z + public final fun getMaxBodyBytes ()I + public final fun getRedactedHeaders ()Ljava/util/Set; + public final fun getStore ()Ldev/sharingan/SharinganStore; + public final fun setCaptureBodies (Z)V + public final fun setMaxBodyBytes (I)V + public final fun setRedactedHeaders (Ljava/util/Set;)V + public final fun setStore (Ldev/sharingan/SharinganStore;)V +} + +public final class dev/sharingan/ktor/SharinganKtorKt { + public static final fun getSharinganKtor ()Lio/ktor/client/plugins/api/ClientPlugin; +} + +public final class dev/sharingan/ui/ComposableSingletons$DetailScreenKt { + public static final field INSTANCE Ldev/sharingan/ui/ComposableSingletons$DetailScreenKt; + public fun ()V + public final fun getLambda$-1055470212$io_github_mibrahimdev_sharingan_release ()Lkotlin/jvm/functions/Function2; + public final fun getLambda$-1459524588$io_github_mibrahimdev_sharingan_release ()Lkotlin/jvm/functions/Function2; + public final fun getLambda$-1929693786$io_github_mibrahimdev_sharingan_release ()Lkotlin/jvm/functions/Function2; + public final fun getLambda$258836107$io_github_mibrahimdev_sharingan_release ()Lkotlin/jvm/functions/Function2; +} + +public final class dev/sharingan/ui/ComposableSingletons$HomeScreenKt { + public static final field INSTANCE Ldev/sharingan/ui/ComposableSingletons$HomeScreenKt; + public fun ()V + public final fun getLambda$-1885715506$io_github_mibrahimdev_sharingan_release ()Lkotlin/jvm/functions/Function2; + public final fun getLambda$1105075751$io_github_mibrahimdev_sharingan_release ()Lkotlin/jvm/functions/Function2; + public final fun getLambda$140966640$io_github_mibrahimdev_sharingan_release ()Lkotlin/jvm/functions/Function2; +} + +public final class dev/sharingan/ui/ComposableSingletons$ShareSheetKt { + public static final field INSTANCE Ldev/sharingan/ui/ComposableSingletons$ShareSheetKt; + public fun ()V + public final fun getLambda$-1093906495$io_github_mibrahimdev_sharingan_release ()Lkotlin/jvm/functions/Function3; + public final fun getLambda$-1918784150$io_github_mibrahimdev_sharingan_release ()Lkotlin/jvm/functions/Function3; + public final fun getLambda$-1975998799$io_github_mibrahimdev_sharingan_release ()Lkotlin/jvm/functions/Function2; + public final fun getLambda$1258238139$io_github_mibrahimdev_sharingan_release ()Lkotlin/jvm/functions/Function2; + public final fun getLambda$1508255784$io_github_mibrahimdev_sharingan_release ()Lkotlin/jvm/functions/Function3; + public final fun getLambda$1942219465$io_github_mibrahimdev_sharingan_release ()Lkotlin/jvm/functions/Function3; +} + +public final class dev/sharingan/ui/SharinganScreenKt { + public static final fun SharinganScreen (Landroidx/compose/ui/Modifier;ZLdev/sharingan/SharinganStore;Landroidx/compose/runtime/Composer;II)V +} + diff --git a/sharingan/api/sharingan.klib.api b/sharingan/api/sharingan.klib.api new file mode 100644 index 0000000..d4172ee --- /dev/null +++ b/sharingan/api/sharingan.klib.api @@ -0,0 +1,323 @@ +// Klib ABI Dump +// Targets: [iosArm64, iosSimulatorArm64] +// Rendering settings: +// - Signature version: 2 +// - Show manifest properties: true +// - Show declarations: true + +// Library unique name: +final enum class dev.sharingan/BleOperation : kotlin/Enum { // dev.sharingan/BleOperation|null[0] + enum entry CONNECT // dev.sharingan/BleOperation.CONNECT|null[0] + enum entry DISCONNECT // dev.sharingan/BleOperation.DISCONNECT|null[0] + enum entry DISCOVER // dev.sharingan/BleOperation.DISCOVER|null[0] + enum entry ERROR // dev.sharingan/BleOperation.ERROR|null[0] + enum entry NOTIFY // dev.sharingan/BleOperation.NOTIFY|null[0] + enum entry READ // dev.sharingan/BleOperation.READ|null[0] + enum entry WRITE // dev.sharingan/BleOperation.WRITE|null[0] + + final val entries // dev.sharingan/BleOperation.entries|#static{}entries[0] + final fun (): kotlin.enums/EnumEntries // dev.sharingan/BleOperation.entries.|#static(){}[0] + + final fun valueOf(kotlin/String): dev.sharingan/BleOperation // dev.sharingan/BleOperation.valueOf|valueOf#static(kotlin.String){}[0] + final fun values(): kotlin/Array // dev.sharingan/BleOperation.values|values#static(){}[0] +} + +final enum class dev.sharingan/MqttDirection : kotlin/Enum { // dev.sharingan/MqttDirection|null[0] + enum entry PUBLISH // dev.sharingan/MqttDirection.PUBLISH|null[0] + enum entry RECEIVE // dev.sharingan/MqttDirection.RECEIVE|null[0] + enum entry SUBSCRIBE // dev.sharingan/MqttDirection.SUBSCRIBE|null[0] + + final val entries // dev.sharingan/MqttDirection.entries|#static{}entries[0] + final fun (): kotlin.enums/EnumEntries // dev.sharingan/MqttDirection.entries.|#static(){}[0] + + final fun valueOf(kotlin/String): dev.sharingan/MqttDirection // dev.sharingan/MqttDirection.valueOf|valueOf#static(kotlin.String){}[0] + final fun values(): kotlin/Array // dev.sharingan/MqttDirection.values|values#static(){}[0] +} + +sealed interface dev.sharingan/SharinganEvent { // dev.sharingan/SharinganEvent|null[0] + abstract val error // dev.sharingan/SharinganEvent.error|{}error[0] + abstract fun (): kotlin/String? // dev.sharingan/SharinganEvent.error.|(){}[0] + abstract val id // dev.sharingan/SharinganEvent.id|{}id[0] + abstract fun (): kotlin/String // dev.sharingan/SharinganEvent.id.|(){}[0] + abstract val timestampMillis // dev.sharingan/SharinganEvent.timestampMillis|{}timestampMillis[0] + abstract fun (): kotlin/Long // dev.sharingan/SharinganEvent.timestampMillis.|(){}[0] + open val isFailure // dev.sharingan/SharinganEvent.isFailure|{}isFailure[0] + open fun (): kotlin/Boolean // dev.sharingan/SharinganEvent.isFailure.|(){}[0] +} + +final class dev.sharingan.ktor/SharinganKtorConfig { // dev.sharingan.ktor/SharinganKtorConfig|null[0] + constructor () // dev.sharingan.ktor/SharinganKtorConfig.|(){}[0] + + final var captureBodies // dev.sharingan.ktor/SharinganKtorConfig.captureBodies|{}captureBodies[0] + final fun (): kotlin/Boolean // dev.sharingan.ktor/SharinganKtorConfig.captureBodies.|(){}[0] + final fun (kotlin/Boolean) // dev.sharingan.ktor/SharinganKtorConfig.captureBodies.|(kotlin.Boolean){}[0] + final var maxBodyBytes // dev.sharingan.ktor/SharinganKtorConfig.maxBodyBytes|{}maxBodyBytes[0] + final fun (): kotlin/Int // dev.sharingan.ktor/SharinganKtorConfig.maxBodyBytes.|(){}[0] + final fun (kotlin/Int) // dev.sharingan.ktor/SharinganKtorConfig.maxBodyBytes.|(kotlin.Int){}[0] + final var redactedHeaders // dev.sharingan.ktor/SharinganKtorConfig.redactedHeaders|{}redactedHeaders[0] + final fun (): kotlin.collections/Set // dev.sharingan.ktor/SharinganKtorConfig.redactedHeaders.|(){}[0] + final fun (kotlin.collections/Set) // dev.sharingan.ktor/SharinganKtorConfig.redactedHeaders.|(kotlin.collections.Set){}[0] + final var store // dev.sharingan.ktor/SharinganKtorConfig.store|{}store[0] + final fun (): dev.sharingan/SharinganStore // dev.sharingan.ktor/SharinganKtorConfig.store.|(){}[0] + final fun (dev.sharingan/SharinganStore) // dev.sharingan.ktor/SharinganKtorConfig.store.|(dev.sharingan.SharinganStore){}[0] +} + +final class dev.sharingan/BleEvent : dev.sharingan/SharinganEvent { // dev.sharingan/BleEvent|null[0] + constructor (kotlin/String, kotlin/Long, dev.sharingan/BleOperation, kotlin/String, kotlin/String? = ..., kotlin/String? = ..., kotlin/String? = ..., kotlin/Long? = ..., kotlin/String? = ...) // dev.sharingan/BleEvent.|(kotlin.String;kotlin.Long;dev.sharingan.BleOperation;kotlin.String;kotlin.String?;kotlin.String?;kotlin.String?;kotlin.Long?;kotlin.String?){}[0] + + final val characteristic // dev.sharingan/BleEvent.characteristic|{}characteristic[0] + final fun (): kotlin/String? // dev.sharingan/BleEvent.characteristic.|(){}[0] + final val device // dev.sharingan/BleEvent.device|{}device[0] + final fun (): kotlin/String // dev.sharingan/BleEvent.device.|(){}[0] + final val error // dev.sharingan/BleEvent.error|{}error[0] + final fun (): kotlin/String? // dev.sharingan/BleEvent.error.|(){}[0] + final val id // dev.sharingan/BleEvent.id|{}id[0] + final fun (): kotlin/String // dev.sharingan/BleEvent.id.|(){}[0] + final val isFailure // dev.sharingan/BleEvent.isFailure|{}isFailure[0] + final fun (): kotlin/Boolean // dev.sharingan/BleEvent.isFailure.|(){}[0] + final val operation // dev.sharingan/BleEvent.operation|{}operation[0] + final fun (): dev.sharingan/BleOperation // dev.sharingan/BleEvent.operation.|(){}[0] + final val payload // dev.sharingan/BleEvent.payload|{}payload[0] + final fun (): kotlin/String? // dev.sharingan/BleEvent.payload.|(){}[0] + final val sizeBytes // dev.sharingan/BleEvent.sizeBytes|{}sizeBytes[0] + final fun (): kotlin/Long? // dev.sharingan/BleEvent.sizeBytes.|(){}[0] + final val timestampMillis // dev.sharingan/BleEvent.timestampMillis|{}timestampMillis[0] + final fun (): kotlin/Long // dev.sharingan/BleEvent.timestampMillis.|(){}[0] + final val uuid // dev.sharingan/BleEvent.uuid|{}uuid[0] + final fun (): kotlin/String? // dev.sharingan/BleEvent.uuid.|(){}[0] + + final fun component1(): kotlin/String // dev.sharingan/BleEvent.component1|component1(){}[0] + final fun component2(): kotlin/Long // dev.sharingan/BleEvent.component2|component2(){}[0] + final fun component3(): dev.sharingan/BleOperation // dev.sharingan/BleEvent.component3|component3(){}[0] + final fun component4(): kotlin/String // dev.sharingan/BleEvent.component4|component4(){}[0] + final fun component5(): kotlin/String? // dev.sharingan/BleEvent.component5|component5(){}[0] + final fun component6(): kotlin/String? // dev.sharingan/BleEvent.component6|component6(){}[0] + final fun component7(): kotlin/String? // dev.sharingan/BleEvent.component7|component7(){}[0] + final fun component8(): kotlin/Long? // dev.sharingan/BleEvent.component8|component8(){}[0] + final fun component9(): kotlin/String? // dev.sharingan/BleEvent.component9|component9(){}[0] + final fun copy(kotlin/String = ..., kotlin/Long = ..., dev.sharingan/BleOperation = ..., kotlin/String = ..., kotlin/String? = ..., kotlin/String? = ..., kotlin/String? = ..., kotlin/Long? = ..., kotlin/String? = ...): dev.sharingan/BleEvent // dev.sharingan/BleEvent.copy|copy(kotlin.String;kotlin.Long;dev.sharingan.BleOperation;kotlin.String;kotlin.String?;kotlin.String?;kotlin.String?;kotlin.Long?;kotlin.String?){}[0] + final fun equals(kotlin/Any?): kotlin/Boolean // dev.sharingan/BleEvent.equals|equals(kotlin.Any?){}[0] + final fun hashCode(): kotlin/Int // dev.sharingan/BleEvent.hashCode|hashCode(){}[0] + final fun toString(): kotlin/String // dev.sharingan/BleEvent.toString|toString(){}[0] +} + +final class dev.sharingan/BleLogger { // dev.sharingan/BleLogger|null[0] + constructor (dev.sharingan/SharinganStore) // dev.sharingan/BleLogger.|(dev.sharingan.SharinganStore){}[0] + + final fun connect(kotlin/String, kotlin/String? = ...) // dev.sharingan/BleLogger.connect|connect(kotlin.String;kotlin.String?){}[0] + final fun disconnect(kotlin/String, kotlin/String? = ...) // dev.sharingan/BleLogger.disconnect|disconnect(kotlin.String;kotlin.String?){}[0] + final fun discover(kotlin/String, kotlin/String? = ..., kotlin/String? = ..., kotlin/String? = ...) // dev.sharingan/BleLogger.discover|discover(kotlin.String;kotlin.String?;kotlin.String?;kotlin.String?){}[0] + final fun error(kotlin/String, kotlin/String, kotlin/String? = ..., kotlin/String? = ...) // dev.sharingan/BleLogger.error|error(kotlin.String;kotlin.String;kotlin.String?;kotlin.String?){}[0] + final fun notify(kotlin/String, kotlin/String? = ..., kotlin/String? = ..., kotlin/String? = ...) // dev.sharingan/BleLogger.notify|notify(kotlin.String;kotlin.String?;kotlin.String?;kotlin.String?){}[0] + final fun read(kotlin/String, kotlin/String? = ..., kotlin/String? = ..., kotlin/String? = ..., kotlin/String? = ...) // dev.sharingan/BleLogger.read|read(kotlin.String;kotlin.String?;kotlin.String?;kotlin.String?;kotlin.String?){}[0] + final fun write(kotlin/String, kotlin/String? = ..., kotlin/String? = ..., kotlin/String? = ..., kotlin/String? = ...) // dev.sharingan/BleLogger.write|write(kotlin.String;kotlin.String?;kotlin.String?;kotlin.String?;kotlin.String?){}[0] +} + +final class dev.sharingan/HttpEvent : dev.sharingan/SharinganEvent { // dev.sharingan/HttpEvent|null[0] + constructor (kotlin/String, kotlin/Long, kotlin/String, kotlin/String, kotlin/Int? = ..., kotlin/Long? = ..., kotlin.collections/List> = ..., kotlin.collections/List> = ..., kotlin/String? = ..., kotlin/String? = ..., kotlin/String? = ..., kotlin/Long? = ..., kotlin.collections/List = ..., kotlin/String? = ...) // dev.sharingan/HttpEvent.|(kotlin.String;kotlin.Long;kotlin.String;kotlin.String;kotlin.Int?;kotlin.Long?;kotlin.collections.List>;kotlin.collections.List>;kotlin.String?;kotlin.String?;kotlin.String?;kotlin.Long?;kotlin.collections.List;kotlin.String?){}[0] + + final val contentType // dev.sharingan/HttpEvent.contentType|{}contentType[0] + final fun (): kotlin/String? // dev.sharingan/HttpEvent.contentType.|(){}[0] + final val durationMillis // dev.sharingan/HttpEvent.durationMillis|{}durationMillis[0] + final fun (): kotlin/Long? // dev.sharingan/HttpEvent.durationMillis.|(){}[0] + final val error // dev.sharingan/HttpEvent.error|{}error[0] + final fun (): kotlin/String? // dev.sharingan/HttpEvent.error.|(){}[0] + final val host // dev.sharingan/HttpEvent.host|{}host[0] + final fun (): kotlin/String // dev.sharingan/HttpEvent.host.|(){}[0] + final val id // dev.sharingan/HttpEvent.id|{}id[0] + final fun (): kotlin/String // dev.sharingan/HttpEvent.id.|(){}[0] + final val isFailure // dev.sharingan/HttpEvent.isFailure|{}isFailure[0] + final fun (): kotlin/Boolean // dev.sharingan/HttpEvent.isFailure.|(){}[0] + final val method // dev.sharingan/HttpEvent.method|{}method[0] + final fun (): kotlin/String // dev.sharingan/HttpEvent.method.|(){}[0] + final val path // dev.sharingan/HttpEvent.path|{}path[0] + final fun (): kotlin/String // dev.sharingan/HttpEvent.path.|(){}[0] + final val requestBody // dev.sharingan/HttpEvent.requestBody|{}requestBody[0] + final fun (): kotlin/String? // dev.sharingan/HttpEvent.requestBody.|(){}[0] + final val requestHeaders // dev.sharingan/HttpEvent.requestHeaders|{}requestHeaders[0] + final fun (): kotlin.collections/List> // dev.sharingan/HttpEvent.requestHeaders.|(){}[0] + final val responseBody // dev.sharingan/HttpEvent.responseBody|{}responseBody[0] + final fun (): kotlin/String? // dev.sharingan/HttpEvent.responseBody.|(){}[0] + final val responseHeaders // dev.sharingan/HttpEvent.responseHeaders|{}responseHeaders[0] + final fun (): kotlin.collections/List> // dev.sharingan/HttpEvent.responseHeaders.|(){}[0] + final val responseSizeBytes // dev.sharingan/HttpEvent.responseSizeBytes|{}responseSizeBytes[0] + final fun (): kotlin/Long? // dev.sharingan/HttpEvent.responseSizeBytes.|(){}[0] + final val statusCode // dev.sharingan/HttpEvent.statusCode|{}statusCode[0] + final fun (): kotlin/Int? // dev.sharingan/HttpEvent.statusCode.|(){}[0] + final val timestampMillis // dev.sharingan/HttpEvent.timestampMillis|{}timestampMillis[0] + final fun (): kotlin/Long // dev.sharingan/HttpEvent.timestampMillis.|(){}[0] + final val timing // dev.sharingan/HttpEvent.timing|{}timing[0] + final fun (): kotlin.collections/List // dev.sharingan/HttpEvent.timing.|(){}[0] + final val url // dev.sharingan/HttpEvent.url|{}url[0] + final fun (): kotlin/String // dev.sharingan/HttpEvent.url.|(){}[0] + + final fun component1(): kotlin/String // dev.sharingan/HttpEvent.component1|component1(){}[0] + final fun component10(): kotlin/String? // dev.sharingan/HttpEvent.component10|component10(){}[0] + final fun component11(): kotlin/String? // dev.sharingan/HttpEvent.component11|component11(){}[0] + final fun component12(): kotlin/Long? // dev.sharingan/HttpEvent.component12|component12(){}[0] + final fun component13(): kotlin.collections/List // dev.sharingan/HttpEvent.component13|component13(){}[0] + final fun component14(): kotlin/String? // dev.sharingan/HttpEvent.component14|component14(){}[0] + final fun component2(): kotlin/Long // dev.sharingan/HttpEvent.component2|component2(){}[0] + final fun component3(): kotlin/String // dev.sharingan/HttpEvent.component3|component3(){}[0] + final fun component4(): kotlin/String // dev.sharingan/HttpEvent.component4|component4(){}[0] + final fun component5(): kotlin/Int? // dev.sharingan/HttpEvent.component5|component5(){}[0] + final fun component6(): kotlin/Long? // dev.sharingan/HttpEvent.component6|component6(){}[0] + final fun component7(): kotlin.collections/List> // dev.sharingan/HttpEvent.component7|component7(){}[0] + final fun component8(): kotlin.collections/List> // dev.sharingan/HttpEvent.component8|component8(){}[0] + final fun component9(): kotlin/String? // dev.sharingan/HttpEvent.component9|component9(){}[0] + final fun copy(kotlin/String = ..., kotlin/Long = ..., kotlin/String = ..., kotlin/String = ..., kotlin/Int? = ..., kotlin/Long? = ..., kotlin.collections/List> = ..., kotlin.collections/List> = ..., kotlin/String? = ..., kotlin/String? = ..., kotlin/String? = ..., kotlin/Long? = ..., kotlin.collections/List = ..., kotlin/String? = ...): dev.sharingan/HttpEvent // dev.sharingan/HttpEvent.copy|copy(kotlin.String;kotlin.Long;kotlin.String;kotlin.String;kotlin.Int?;kotlin.Long?;kotlin.collections.List>;kotlin.collections.List>;kotlin.String?;kotlin.String?;kotlin.String?;kotlin.Long?;kotlin.collections.List;kotlin.String?){}[0] + final fun equals(kotlin/Any?): kotlin/Boolean // dev.sharingan/HttpEvent.equals|equals(kotlin.Any?){}[0] + final fun hashCode(): kotlin/Int // dev.sharingan/HttpEvent.hashCode|hashCode(){}[0] + final fun toString(): kotlin/String // dev.sharingan/HttpEvent.toString|toString(){}[0] +} + +final class dev.sharingan/HttpLogger { // dev.sharingan/HttpLogger|null[0] + constructor (dev.sharingan/SharinganStore, kotlin.collections/Set = ...) // dev.sharingan/HttpLogger.|(dev.sharingan.SharinganStore;kotlin.collections.Set){}[0] + + final fun log(kotlin/String, kotlin/String, kotlin/Int? = ..., kotlin/Long? = ..., kotlin.collections/List> = ..., kotlin.collections/List> = ..., kotlin/String? = ..., kotlin/String? = ..., kotlin/String? = ..., kotlin/Long? = ..., kotlin.collections/List = ..., kotlin/String? = ...) // dev.sharingan/HttpLogger.log|log(kotlin.String;kotlin.String;kotlin.Int?;kotlin.Long?;kotlin.collections.List>;kotlin.collections.List>;kotlin.String?;kotlin.String?;kotlin.String?;kotlin.Long?;kotlin.collections.List;kotlin.String?){}[0] + + final object Companion { // dev.sharingan/HttpLogger.Companion|null[0] + final const val REDACTED_VALUE // dev.sharingan/HttpLogger.Companion.REDACTED_VALUE|{}REDACTED_VALUE[0] + final fun (): kotlin/String // dev.sharingan/HttpLogger.Companion.REDACTED_VALUE.|(){}[0] + + final val DEFAULT_REDACTED_HEADERS // dev.sharingan/HttpLogger.Companion.DEFAULT_REDACTED_HEADERS|{}DEFAULT_REDACTED_HEADERS[0] + final fun (): kotlin.collections/Set // dev.sharingan/HttpLogger.Companion.DEFAULT_REDACTED_HEADERS.|(){}[0] + } +} + +final class dev.sharingan/MqttEvent : dev.sharingan/SharinganEvent { // dev.sharingan/MqttEvent|null[0] + constructor (kotlin/String, kotlin/Long, dev.sharingan/MqttDirection, kotlin/String, kotlin/Int = ..., kotlin/Boolean = ..., kotlin/String? = ..., kotlin/Long? = ..., kotlin/String? = ...) // dev.sharingan/MqttEvent.|(kotlin.String;kotlin.Long;dev.sharingan.MqttDirection;kotlin.String;kotlin.Int;kotlin.Boolean;kotlin.String?;kotlin.Long?;kotlin.String?){}[0] + + final val direction // dev.sharingan/MqttEvent.direction|{}direction[0] + final fun (): dev.sharingan/MqttDirection // dev.sharingan/MqttEvent.direction.|(){}[0] + final val error // dev.sharingan/MqttEvent.error|{}error[0] + final fun (): kotlin/String? // dev.sharingan/MqttEvent.error.|(){}[0] + final val id // dev.sharingan/MqttEvent.id|{}id[0] + final fun (): kotlin/String // dev.sharingan/MqttEvent.id.|(){}[0] + final val payload // dev.sharingan/MqttEvent.payload|{}payload[0] + final fun (): kotlin/String? // dev.sharingan/MqttEvent.payload.|(){}[0] + final val payloadSizeBytes // dev.sharingan/MqttEvent.payloadSizeBytes|{}payloadSizeBytes[0] + final fun (): kotlin/Long? // dev.sharingan/MqttEvent.payloadSizeBytes.|(){}[0] + final val qos // dev.sharingan/MqttEvent.qos|{}qos[0] + final fun (): kotlin/Int // dev.sharingan/MqttEvent.qos.|(){}[0] + final val retained // dev.sharingan/MqttEvent.retained|{}retained[0] + final fun (): kotlin/Boolean // dev.sharingan/MqttEvent.retained.|(){}[0] + final val timestampMillis // dev.sharingan/MqttEvent.timestampMillis|{}timestampMillis[0] + final fun (): kotlin/Long // dev.sharingan/MqttEvent.timestampMillis.|(){}[0] + final val topic // dev.sharingan/MqttEvent.topic|{}topic[0] + final fun (): kotlin/String // dev.sharingan/MqttEvent.topic.|(){}[0] + + final fun component1(): kotlin/String // dev.sharingan/MqttEvent.component1|component1(){}[0] + final fun component2(): kotlin/Long // dev.sharingan/MqttEvent.component2|component2(){}[0] + final fun component3(): dev.sharingan/MqttDirection // dev.sharingan/MqttEvent.component3|component3(){}[0] + final fun component4(): kotlin/String // dev.sharingan/MqttEvent.component4|component4(){}[0] + final fun component5(): kotlin/Int // dev.sharingan/MqttEvent.component5|component5(){}[0] + final fun component6(): kotlin/Boolean // dev.sharingan/MqttEvent.component6|component6(){}[0] + final fun component7(): kotlin/String? // dev.sharingan/MqttEvent.component7|component7(){}[0] + final fun component8(): kotlin/Long? // dev.sharingan/MqttEvent.component8|component8(){}[0] + final fun component9(): kotlin/String? // dev.sharingan/MqttEvent.component9|component9(){}[0] + final fun copy(kotlin/String = ..., kotlin/Long = ..., dev.sharingan/MqttDirection = ..., kotlin/String = ..., kotlin/Int = ..., kotlin/Boolean = ..., kotlin/String? = ..., kotlin/Long? = ..., kotlin/String? = ...): dev.sharingan/MqttEvent // dev.sharingan/MqttEvent.copy|copy(kotlin.String;kotlin.Long;dev.sharingan.MqttDirection;kotlin.String;kotlin.Int;kotlin.Boolean;kotlin.String?;kotlin.Long?;kotlin.String?){}[0] + final fun equals(kotlin/Any?): kotlin/Boolean // dev.sharingan/MqttEvent.equals|equals(kotlin.Any?){}[0] + final fun hashCode(): kotlin/Int // dev.sharingan/MqttEvent.hashCode|hashCode(){}[0] + final fun toString(): kotlin/String // dev.sharingan/MqttEvent.toString|toString(){}[0] +} + +final class dev.sharingan/MqttLogger { // dev.sharingan/MqttLogger|null[0] + constructor (dev.sharingan/SharinganStore) // dev.sharingan/MqttLogger.|(dev.sharingan.SharinganStore){}[0] + + final fun publish(kotlin/String, kotlin/String?, kotlin/Int = ..., kotlin/Boolean = ..., kotlin/String? = ...) // dev.sharingan/MqttLogger.publish|publish(kotlin.String;kotlin.String?;kotlin.Int;kotlin.Boolean;kotlin.String?){}[0] + final fun received(kotlin/String, kotlin/String?, kotlin/Int = ..., kotlin/Boolean = ...) // dev.sharingan/MqttLogger.received|received(kotlin.String;kotlin.String?;kotlin.Int;kotlin.Boolean){}[0] + final fun subscribed(kotlin/String, kotlin/Int = ...) // dev.sharingan/MqttLogger.subscribed|subscribed(kotlin.String;kotlin.Int){}[0] +} + +final class dev.sharingan/SharinganStore { // dev.sharingan/SharinganStore|null[0] + constructor (kotlin/Int = ...) // dev.sharingan/SharinganStore.|(kotlin.Int){}[0] + + final val capacity // dev.sharingan/SharinganStore.capacity|{}capacity[0] + final fun (): kotlin/Int // dev.sharingan/SharinganStore.capacity.|(){}[0] + final val events // dev.sharingan/SharinganStore.events|{}events[0] + final fun (): kotlinx.coroutines.flow/StateFlow> // dev.sharingan/SharinganStore.events.|(){}[0] + final val isRecording // dev.sharingan/SharinganStore.isRecording|{}isRecording[0] + final fun (): kotlinx.coroutines.flow/StateFlow // dev.sharingan/SharinganStore.isRecording.|(){}[0] + + final fun clear() // dev.sharingan/SharinganStore.clear|clear(){}[0] + final fun record(dev.sharingan/SharinganEvent) // dev.sharingan/SharinganStore.record|record(dev.sharingan.SharinganEvent){}[0] + final fun setRecording(kotlin/Boolean) // dev.sharingan/SharinganStore.setRecording|setRecording(kotlin.Boolean){}[0] + + final object Companion { // dev.sharingan/SharinganStore.Companion|null[0] + final const val DEFAULT_CAPACITY // dev.sharingan/SharinganStore.Companion.DEFAULT_CAPACITY|{}DEFAULT_CAPACITY[0] + final fun (): kotlin/Int // dev.sharingan/SharinganStore.Companion.DEFAULT_CAPACITY.|(){}[0] + } +} + +final class dev.sharingan/TimingPhase { // dev.sharingan/TimingPhase|null[0] + constructor (kotlin/String, kotlin/Long) // dev.sharingan/TimingPhase.|(kotlin.String;kotlin.Long){}[0] + + final val label // dev.sharingan/TimingPhase.label|{}label[0] + final fun (): kotlin/String // dev.sharingan/TimingPhase.label.|(){}[0] + final val millis // dev.sharingan/TimingPhase.millis|{}millis[0] + final fun (): kotlin/Long // dev.sharingan/TimingPhase.millis.|(){}[0] + + final fun component1(): kotlin/String // dev.sharingan/TimingPhase.component1|component1(){}[0] + final fun component2(): kotlin/Long // dev.sharingan/TimingPhase.component2|component2(){}[0] + final fun copy(kotlin/String = ..., kotlin/Long = ...): dev.sharingan/TimingPhase // dev.sharingan/TimingPhase.copy|copy(kotlin.String;kotlin.Long){}[0] + final fun equals(kotlin/Any?): kotlin/Boolean // dev.sharingan/TimingPhase.equals|equals(kotlin.Any?){}[0] + final fun hashCode(): kotlin/Int // dev.sharingan/TimingPhase.hashCode|hashCode(){}[0] + final fun toString(): kotlin/String // dev.sharingan/TimingPhase.toString|toString(){}[0] +} + +final object dev.sharingan/Sharingan { // dev.sharingan/Sharingan|null[0] + final val ble // dev.sharingan/Sharingan.ble|{}ble[0] + final fun (): dev.sharingan/BleLogger // dev.sharingan/Sharingan.ble.|(){}[0] + final val events // dev.sharingan/Sharingan.events|{}events[0] + final fun (): kotlinx.coroutines.flow/StateFlow> // dev.sharingan/Sharingan.events.|(){}[0] + final val http // dev.sharingan/Sharingan.http|{}http[0] + final fun (): dev.sharingan/HttpLogger // dev.sharingan/Sharingan.http.|(){}[0] + final val isRecording // dev.sharingan/Sharingan.isRecording|{}isRecording[0] + final fun (): kotlinx.coroutines.flow/StateFlow // dev.sharingan/Sharingan.isRecording.|(){}[0] + final val mqtt // dev.sharingan/Sharingan.mqtt|{}mqtt[0] + final fun (): dev.sharingan/MqttLogger // dev.sharingan/Sharingan.mqtt.|(){}[0] + final val store // dev.sharingan/Sharingan.store|{}store[0] + final fun (): dev.sharingan/SharinganStore // dev.sharingan/Sharingan.store.|(){}[0] + + final fun clear() // dev.sharingan/Sharingan.clear|clear(){}[0] + final fun setRecording(kotlin/Boolean) // dev.sharingan/Sharingan.setRecording|setRecording(kotlin.Boolean){}[0] +} + +final object dev.sharingan/SharinganExport { // dev.sharingan/SharinganExport|null[0] + final fun agentMarkdown(dev.sharingan/SharinganEvent): kotlin/String // dev.sharingan/SharinganExport.agentMarkdown|agentMarkdown(dev.sharingan.SharinganEvent){}[0] + final fun agentMarkdown(kotlin.collections/List): kotlin/String // dev.sharingan/SharinganExport.agentMarkdown|agentMarkdown(kotlin.collections.List){}[0] + final fun curl(dev.sharingan/HttpEvent): kotlin/String // dev.sharingan/SharinganExport.curl|curl(dev.sharingan.HttpEvent){}[0] + final fun json(dev.sharingan/SharinganEvent): kotlin/String // dev.sharingan/SharinganExport.json|json(dev.sharingan.SharinganEvent){}[0] + final fun sessionJson(kotlin.collections/List): kotlin/String // dev.sharingan/SharinganExport.sessionJson|sessionJson(kotlin.collections.List){}[0] + final fun summary(kotlin.collections/List): kotlin/String // dev.sharingan/SharinganExport.summary|summary(kotlin.collections.List){}[0] +} + +final val dev.sharingan.ktor/SharinganKtor // dev.sharingan.ktor/SharinganKtor|{}SharinganKtor[0] + final fun (): io.ktor.client.plugins.api/ClientPlugin // dev.sharingan.ktor/SharinganKtor.|(){}[0] +final val dev.sharingan.ktor/dev_sharingan_ktor_SharinganKtorConfig$stableprop // dev.sharingan.ktor/dev_sharingan_ktor_SharinganKtorConfig$stableprop|#static{}dev_sharingan_ktor_SharinganKtorConfig$stableprop[0] +final val dev.sharingan/dev_sharingan_BleEvent$stableprop // dev.sharingan/dev_sharingan_BleEvent$stableprop|#static{}dev_sharingan_BleEvent$stableprop[0] +final val dev.sharingan/dev_sharingan_BleLogger$stableprop // dev.sharingan/dev_sharingan_BleLogger$stableprop|#static{}dev_sharingan_BleLogger$stableprop[0] +final val dev.sharingan/dev_sharingan_HttpEvent$stableprop // dev.sharingan/dev_sharingan_HttpEvent$stableprop|#static{}dev_sharingan_HttpEvent$stableprop[0] +final val dev.sharingan/dev_sharingan_HttpLogger$stableprop // dev.sharingan/dev_sharingan_HttpLogger$stableprop|#static{}dev_sharingan_HttpLogger$stableprop[0] +final val dev.sharingan/dev_sharingan_MqttEvent$stableprop // dev.sharingan/dev_sharingan_MqttEvent$stableprop|#static{}dev_sharingan_MqttEvent$stableprop[0] +final val dev.sharingan/dev_sharingan_MqttLogger$stableprop // dev.sharingan/dev_sharingan_MqttLogger$stableprop|#static{}dev_sharingan_MqttLogger$stableprop[0] +final val dev.sharingan/dev_sharingan_Sharingan$stableprop // dev.sharingan/dev_sharingan_Sharingan$stableprop|#static{}dev_sharingan_Sharingan$stableprop[0] +final val dev.sharingan/dev_sharingan_SharinganExport$stableprop // dev.sharingan/dev_sharingan_SharinganExport$stableprop|#static{}dev_sharingan_SharinganExport$stableprop[0] +final val dev.sharingan/dev_sharingan_SharinganStore$stableprop // dev.sharingan/dev_sharingan_SharinganStore$stableprop|#static{}dev_sharingan_SharinganStore$stableprop[0] +final val dev.sharingan/dev_sharingan_TimingPhase$stableprop // dev.sharingan/dev_sharingan_TimingPhase$stableprop|#static{}dev_sharingan_TimingPhase$stableprop[0] + +final fun dev.sharingan.ktor/dev_sharingan_ktor_SharinganKtorConfig$stableprop_getter(): kotlin/Int // dev.sharingan.ktor/dev_sharingan_ktor_SharinganKtorConfig$stableprop_getter|dev_sharingan_ktor_SharinganKtorConfig$stableprop_getter(){}[0] +final fun dev.sharingan.ui/SharinganScreen(androidx.compose.ui/Modifier?, kotlin/Boolean, dev.sharingan/SharinganStore?, androidx.compose.runtime/Composer?, kotlin/Int, kotlin/Int) // dev.sharingan.ui/SharinganScreen|SharinganScreen(androidx.compose.ui.Modifier?;kotlin.Boolean;dev.sharingan.SharinganStore?;androidx.compose.runtime.Composer?;kotlin.Int;kotlin.Int){}[0] +final fun dev.sharingan/SharinganViewController(): platform.UIKit/UIViewController // dev.sharingan/SharinganViewController|SharinganViewController(){}[0] +final fun dev.sharingan/dev_sharingan_BleEvent$stableprop_getter(): kotlin/Int // dev.sharingan/dev_sharingan_BleEvent$stableprop_getter|dev_sharingan_BleEvent$stableprop_getter(){}[0] +final fun dev.sharingan/dev_sharingan_BleLogger$stableprop_getter(): kotlin/Int // dev.sharingan/dev_sharingan_BleLogger$stableprop_getter|dev_sharingan_BleLogger$stableprop_getter(){}[0] +final fun dev.sharingan/dev_sharingan_HttpEvent$stableprop_getter(): kotlin/Int // dev.sharingan/dev_sharingan_HttpEvent$stableprop_getter|dev_sharingan_HttpEvent$stableprop_getter(){}[0] +final fun dev.sharingan/dev_sharingan_HttpLogger$stableprop_getter(): kotlin/Int // dev.sharingan/dev_sharingan_HttpLogger$stableprop_getter|dev_sharingan_HttpLogger$stableprop_getter(){}[0] +final fun dev.sharingan/dev_sharingan_MqttEvent$stableprop_getter(): kotlin/Int // dev.sharingan/dev_sharingan_MqttEvent$stableprop_getter|dev_sharingan_MqttEvent$stableprop_getter(){}[0] +final fun dev.sharingan/dev_sharingan_MqttLogger$stableprop_getter(): kotlin/Int // dev.sharingan/dev_sharingan_MqttLogger$stableprop_getter|dev_sharingan_MqttLogger$stableprop_getter(){}[0] +final fun dev.sharingan/dev_sharingan_Sharingan$stableprop_getter(): kotlin/Int // dev.sharingan/dev_sharingan_Sharingan$stableprop_getter|dev_sharingan_Sharingan$stableprop_getter(){}[0] +final fun dev.sharingan/dev_sharingan_SharinganExport$stableprop_getter(): kotlin/Int // dev.sharingan/dev_sharingan_SharinganExport$stableprop_getter|dev_sharingan_SharinganExport$stableprop_getter(){}[0] +final fun dev.sharingan/dev_sharingan_SharinganStore$stableprop_getter(): kotlin/Int // dev.sharingan/dev_sharingan_SharinganStore$stableprop_getter|dev_sharingan_SharinganStore$stableprop_getter(){}[0] +final fun dev.sharingan/dev_sharingan_TimingPhase$stableprop_getter(): kotlin/Int // dev.sharingan/dev_sharingan_TimingPhase$stableprop_getter|dev_sharingan_TimingPhase$stableprop_getter(){}[0] +final fun dev.sharingan/presentSharingan(kotlin/Boolean = ...) // dev.sharingan/presentSharingan|presentSharingan(kotlin.Boolean){}[0]