class NativeTransports {

        static EventLoopResources RESOURCES = KqueueProvider.isAvailable() ? KqueueProvider.getResources()
                : IOUringProvider.isAvailable() ? IOUringProvider.getResources() : EpollProvider.getResources();

        /**
         * @return {@code true} if a native transport is available.
         */
        static boolean isAvailable() {
            return EpollProvider.isAvailable() || KqueueProvider.isAvailable() || IOUringProvider.isAvailable();
        }

        /**
         * @return {@code true} if a native transport for domain sockets is available.
         */
        public static boolean isDomainSocketSupported() {
            return EpollProvider.isAvailable() || KqueueProvider.isAvailable();
        }

        /**
         * @return the native transport socket {@link Channel} class.
         */
        static Class<? extends Channel> socketChannelClass() {
            return RESOURCES.socketChannelClass();
        }

        /**
         * @return the native transport socket {@link DatagramChannel} class.
         */
        static Class<? extends DatagramChannel> datagramChannelClass() {
            return RESOURCES.datagramChannelClass();
        }

        /**
         * @return the native transport domain socket {@link Channel} class.
         */
        public static Class<? extends Channel> domainSocketChannelClass() {
            assertDomainSocketAvailable();
            return EpollProvider.isAvailable() && IOUringProvider.isAvailable()
                    ? EpollProvider.getResources().domainSocketChannelClass()
                    : RESOURCES.domainSocketChannelClass();
        }

        /**
         * @return the native transport {@link EventLoopGroup} class. Defaults to TCP sockets. See
         *         {@link #eventLoopGroupClass(boolean)} to request a specific EventLoopGroup for Domain Socket usage.
         */
        public static Class<? extends EventLoopGroup> eventLoopGroupClass() {
            return eventLoopGroupClass(false);
        }

        /**
         * @return the native transport {@link EventLoopGroup} class.
         * @param domainSocket {@code true} to indicate Unix Domain Socket usage, {@code false} otherwise.
         * @since 6.3.3
         */
        public static Class<? extends EventLoopGroup> eventLoopGroupClass(boolean domainSocket) {

            return domainSocket && EpollProvider.isAvailable() && IOUringProvider.isAvailable()
                    ? EpollProvider.getResources().eventLoopGroupClass()
                    : RESOURCES.eventLoopGroupClass();
        }

        public static void assertDomainSocketAvailable() {<FILL_FUNCTION_BODY>}

    }


            LettuceAssert.assertState(NativeTransports.isDomainSocketSupported(),
                    "A unix domain socket connection requires epoll or kqueue and neither is available");
        
<no_super_class>