// Signature format: 4.0
package com.google.accompanist.themeadapter.material3 {

  public final class Mdc3Theme {
    method @Deprecated @androidx.compose.runtime.Composable public static void Mdc3Theme(optional android.content.Context context, optional boolean readColorScheme, optional boolean readTypography, optional boolean readShapes, optional boolean setTextColors, optional boolean setDefaultFontFamily, kotlin.jvm.functions.Function0<kotlin.Unit> content);
    method @Deprecated public static com.google.accompanist.themeadapter.material3.Theme3Parameters createMdc3Theme(android.content.Context context, androidx.compose.ui.unit.LayoutDirection layoutDirection, optional androidx.compose.ui.unit.Density density, optional boolean readColorScheme, optional boolean readTypography, optional boolean readShapes, optional boolean setTextColors, optional boolean setDefaultFontFamily);
  }

  @Deprecated public final class Theme3Parameters {
    ctor @Deprecated public Theme3Parameters(androidx.compose.material3.ColorScheme? colorScheme, androidx.compose.material3.Typography? typography, androidx.compose.material3.Shapes? shapes);
    method @Deprecated public androidx.compose.material3.ColorScheme? component1();
    method @Deprecated public androidx.compose.material3.Typography? component2();
    method @Deprecated public androidx.compose.material3.Shapes? component3();
    method @Deprecated public com.google.accompanist.themeadapter.material3.Theme3Parameters copy(androidx.compose.material3.ColorScheme? colorScheme, androidx.compose.material3.Typography? typography, androidx.compose.material3.Shapes? shapes);
    method @Deprecated public androidx.compose.material3.ColorScheme? getColorScheme();
    method @Deprecated public androidx.compose.material3.Shapes? getShapes();
    method @Deprecated public androidx.compose.material3.Typography? getTypography();
    property public final androidx.compose.material3.ColorScheme? colorScheme;
    property public final androidx.compose.material3.Shapes? shapes;
    property public final androidx.compose.material3.Typography? typography;
  }

}

