import sys
from _typeshed import structseq
from typing import Any, Final, final

if sys.platform != "win32":
    @final
    class struct_spwd(structseq[Any], tuple[str, str, int, int, int, int, int, int, int]):
        __match_args__: Final = (
            "sp_namp",
            "sp_pwdp",
            "sp_lstchg",
            "sp_min",
            "sp_max",
            "sp_warn",
            "sp_inact",
            "sp_expire",
            "sp_flag",
        )

        @property
        def sp_namp(self) -> str: ...
        @property
        def sp_pwdp(self) -> str: ...
        @property
        def sp_lstchg(self) -> int: ...
        @property
        def sp_min(self) -> int: ...
        @property
        def sp_max(self) -> int: ...
        @property
        def sp_warn(self) -> int: ...
        @property
        def sp_inact(self) -> int: ...
        @property
        def sp_expire(self) -> int: ...
        @property
        def sp_flag(self) -> int: ...
        # Deprecated aliases below.
        @property
        def sp_nam(self) -> str: ...
        @property
        def sp_pwd(self) -> str: ...

    def getspall() -> list[struct_spwd]: ...
    def getspnam(arg: str, /) -> struct_spwd: ...
