
"""Re-exports the full aionetiface public API as a single namespace."""
import os

if __name__ != "__main__":
    os.environ["PYTHONIOENCODING"] = "utf-8"

    from .errors import *
    from .utility.utils import *  # noqa: F401,F403 — re-exports the full utils public API
    from .utility.cmd_tools import *
    from .vendor.ecies import *
    from .utility.signing import *
    from .net.net_utils import *
    from .net.bind import *
    from .net.bind.bind_rules import binder_async, binder_sync  # noqa: F401
    from .net.bind.bind_utils import bind_closure, get_high_port_socket  # noqa: F401
    from .net.address import Address  # noqa: F401
    from .net.ip_range import IPRange, IPR  # noqa: F401
    from .net.asyncio.async_run import *
    from .entrypoint import aionetiface_setup_netifaces, aionetiface_setup_event_loop  # noqa: F401
    from .nic.route.route import Route  # noqa: F401
    from .nic.route.route_pool import RoutePool  # noqa: F401
    from .nic.route.route_load import discover_nic_wan_ips  # noqa: F401
    from .nic.route.route_utils import bind_to_route, interfaces_to_rp  # noqa: F401
    from .nic.route.rp_from_ip import sort_ips_by_nic, route_pool_from_ips  # noqa: F401
    from .nic.netifaces.netiface_extra import netiface_addr_to_ipr  # noqa: F401
    from .net.asyncio.create_udp_fallback import *
    from .net.pipe.pipe import *
    from .nic.interface import Interface  # noqa: F401
    from .nic.af_group import AFGroup  # noqa: F401
    # Re-export interface-util helpers: these were historically available on
    # the top-level ``aionetiface`` namespace because ``entrypoint.py`` did
    # ``from .nic.interface_utils import *`` and had no ``__all__``. Now that
    # ``entrypoint.py`` defines a narrow ``__all__`` (just the setup functions),
    # we surface the helpers explicitly here to keep the public API stable.
    from .nic.interface_utils import *  # noqa: F401,F403
    from .nic.select_interface import *
    from .nic.route.route_table import get_route_table, is_internet_if  # noqa: F401
    from .protocol.stun.stun_client import STUNClient, get_stun_clients  # noqa: F401
    from .protocol.stun.stun_defs import (  # noqa: F401
        STUNMsg, STUNMsgTypes, STUNMsgCodes, STUNAttrs, STUNAddrTup,
        RFC3489, RFC5389, RFC8489,
    )
    from .protocol.stun.stun_utils import stun_proc_attrs, stun_proto  # noqa: F401
    from .net.daemon import Daemon  # noqa: F401
    from .net.topology import *
    from .protocol.echo.echo_server import *
    from .protocol.http.http_client_lib import ParseHTTPResponse, WebCurl  # noqa: F401
    from .protocol.http.http_client_lib import http_req_buf  # noqa: F401
    from .protocol.http.http_server_lib import (  # noqa: F401
        rest_service,
        send_json,
        send_binary,
        RESTD,
        api_route_closure,
        ParseHTTPRequest,
    )
    from .utility.sys_clock import SysClock  # noqa: F401
    from .utility.obj_collection import *
    from .install import *
    from .utility.test_init import *
    from .utility.cleanup import *
    from .net.net_patterns import proto_recv, proto_send  # noqa: F401
    from .servers import INFRA  # noqa: F401
