package

package test_visibility {
    public val internal_val: kotlin.Int = 34
    private val private_val: kotlin.Int = 4
    protected val protected_val: kotlin.Int = 4
    public fun doSmth(/*0*/ i: kotlin.Int): kotlin.Int
    public fun internal_fun(): kotlin.Unit
    private fun private_fun(): kotlin.Unit
    protected fun protected_fun(): kotlin.Unit
    public fun test1(): kotlin.Unit
    public fun test3(/*0*/ a: test_visibility.A): kotlin.Unit
    public fun test4(/*0*/ c: test_visibility.C): kotlin.Unit

    public final class A {
        public constructor A()
        private final val i: kotlin.Int = 23
        private final val v: test_visibility.B
        public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
        private final fun f(/*0*/ i: kotlin.Int): test_visibility.B
        public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
        public final fun test(): kotlin.Unit
        public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
    }

    public final class B {
        public constructor B()
        public final fun bMethod(): kotlin.Unit
        public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
        public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
        public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
    }

    public open class C : test_visibility.T {
        public constructor C()
        protected final var i: kotlin.Int
        public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
        public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
        public final fun test5(): kotlin.Unit
        public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
    }

    public final class D : test_visibility.C {
        public constructor D()
        protected final override /*1*/ /*fake_override*/ var i: kotlin.Int
        public final val j: kotlin.Int
        public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
        public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
        public final override /*1*/ /*fake_override*/ fun test5(): kotlin.Unit
        public final fun test6(): kotlin.Unit
        public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
    }

    public final class E : test_visibility.C {
        public constructor E()
        protected final override /*1*/ /*fake_override*/ var i: kotlin.Int
        public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
        public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
        public final override /*1*/ /*fake_override*/ fun test5(): kotlin.Unit
        public final fun test7(): kotlin.Unit
        public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
    }

    public final class F : test_visibility.C {
        public constructor F()
        protected final override /*1*/ /*fake_override*/ var i: kotlin.Int
        public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
        public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
        public final override /*1*/ /*fake_override*/ fun test5(): kotlin.Unit
        public final fun test8(/*0*/ c: test_visibility.C): kotlin.Unit
        public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
    }

    public final class G : test_visibility.T {
        public constructor G()
        public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
        public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
        public final fun test8(/*0*/ c: test_visibility.C): kotlin.Unit
        public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
    }

    protected final class ProtectedClass {
        public constructor ProtectedClass()
        public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
        public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
        public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
    }

    protected interface ProtectedTrait {
        public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
        public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
        public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
    }

    public interface T {
        public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
        public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
        public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
    }

    public final class Y {
        public constructor Y()
        public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
        public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
        public final fun test2(): kotlin.Unit
        public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
    }
}

package test_visibility2 {
    public fun test(): kotlin.Unit
}
