"""Shared TUI components for networking configuration."""

from flux_networking_shared.tui.models import (
    FLUX_API_PORTS,
    AddMappingResult,
    FluxApiPorts,
    InterfaceConfigResult,
    InterfaceShapingPolicy,
    ResolvedDnsServer,
    ResolvedHostname,
    Route,
    UpnpLease,
    UpnpStatus,
)
from flux_networking_shared.tui.screens import (
    ConfirmExitScreen,
    InterfaceModalScreen,
    NetworkScreen,
)
from flux_networking_shared.tui.widgets import (
    Connectivity,
    Dns,
    DnsSummary,
    FieldSet,
    FocusLabel,
    Interface,
    InterfaceGroup,
    InvalidLabel,
    LabelSwitch,
    Layer3Builder,
    Loading,
    NameResolution,
    NetworkOverview,
    NetworkSummary,
    RouteSummary,
    Routing,
    UpnpActionBar,
    UpnpBuilder,
    ValidateBlurInput,
    WarningLabel,
)

__all__ = [
    # Models
    "AddMappingResult",
    "FLUX_API_PORTS",
    "FluxApiPorts",
    "InterfaceConfigResult",
    "InterfaceShapingPolicy",
    "ResolvedDnsServer",
    "ResolvedHostname",
    "Route",
    "UpnpLease",
    "UpnpStatus",
    # Screens
    "ConfirmExitScreen",
    "InterfaceModalScreen",
    "NetworkScreen",
    # Widgets
    "Connectivity",
    "Dns",
    "DnsSummary",
    "FieldSet",
    "FocusLabel",
    "Interface",
    "InterfaceGroup",
    "InvalidLabel",
    "LabelSwitch",
    "Layer3Builder",
    "Loading",
    "NameResolution",
    "NetworkOverview",
    "NetworkSummary",
    "RouteSummary",
    "Routing",
    "UpnpActionBar",
    "UpnpBuilder",
    "ValidateBlurInput",
    "WarningLabel",
]
