// Signature format: 3.0
package androidx.compose.ui.text.android {

  @kotlin.RequiresOptIn(level=RequiresOptIn.Level.ERROR, message="This is internal API that may change frequently and without warning.") @kotlin.annotation.Target(allowedTargets={AnnotationTarget.CLASS, AnnotationTarget.FUNCTION, AnnotationTarget.PROPERTY}) public @interface InternalPlatformTextApi {
  }

  public final class LayoutCompatKt {
  }

  public final class LayoutHelperKt {
  }

  public final class LayoutIntrinsicsKt {
  }

  public final class TextLayoutKt {
  }

}

package androidx.compose.ui.text.android.style {

  public final class FontWeightStyleSpanKt {
  }

  public final class PlaceholderSpanKt {
  }

}

