/**
 * public abstract interface Foo<T#0 (* X *), T#1 (* Y *)> : kotlin/Any {
 *
 *   // signature: foo(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
 *   public open fun <T#2 (* Z *)> foo(x: T#0, y: T#1, z: T#2): kotlin/Unit
 *
 *   // getter: getX()I
 *   public open val x: kotlin/Int
 *     public open (* non-default *) get
 *
 *   // module name: main
 * }
 */
@kotlin.Metadata()
public abstract interface Foo<X extends java.lang.Object, Y extends java.lang.Object> {

    public abstract <Z extends java.lang.Object>void foo(X x, Y y, Z z);

    public abstract int getX();

    /**
     * synthetic class
     */
    @kotlin.Metadata()
    public static final class DefaultImpls {

        public DefaultImpls() {
            super();
        }

        public static <X extends java.lang.Object, Y extends java.lang.Object, Z extends java.lang.Object>void foo(@org.jetbrains.annotations.NotNull()
        Foo<X, Y> $this, X x, Y y, Z z) {
        }

        public static <X extends java.lang.Object, Y extends java.lang.Object>int getX(@org.jetbrains.annotations.NotNull()
        Foo<X, Y> $this) {
            return 0;
        }
    }
}
