"""Import shim for configure-network.py (hyphenated filename)."""

from __future__ import annotations

import importlib.util
from pathlib import Path
from typing import Any, Callable

_impl_path = Path(__file__).with_name("configure-network.py")
_spec = importlib.util.spec_from_file_location("_configure_network_impl", _impl_path)
if _spec is None or _spec.loader is None:
    raise ImportError(f"Cannot load {_impl_path}")
_impl = importlib.util.module_from_spec(_spec)
_spec.loader.exec_module(_impl)

NetworkConfigurator = _impl.NetworkConfigurator
Colors = _impl.Colors
print_header: Callable[..., None] = _impl.print_header
print_success: Callable[..., None] = _impl.print_success
print_error: Callable[..., None] = _impl.print_error
print_warning: Callable[..., None] = _impl.print_warning
print_info: Callable[..., None] = _impl.print_info
input_with_default: Callable[..., str] = _impl.input_with_default
input_int: Callable[..., int] = _impl.input_int
input_yes_no: Callable[..., bool] = _impl.input_yes_no
input_hex: Callable[..., str] = _impl.input_hex
validate_ip: Callable[[str], bool] = _impl.validate_ip
validate_cidr: Callable[[str], bool] = _impl.validate_cidr
validate_port: Callable[[str], bool] = _impl.validate_port
validate_chain_id: Callable[[str], bool] = _impl.validate_chain_id

__all__ = [
    "NetworkConfigurator",
    "Colors",
    "print_header",
    "print_success",
    "print_error",
    "print_warning",
    "print_info",
    "input_with_default",
    "input_int",
    "input_yes_no",
    "input_hex",
    "validate_ip",
    "validate_cidr",
    "validate_port",
    "validate_chain_id",
]
