# This module is Windows-only and requires msvcrt

from billiard.process import BaseProcess

__all__ = ["Popen"]

class Popen:
    method: str
    returncode: int | None
    pid: int
    sentinel: int | None

    class DupFd:
        def __init__(self, fd: int) -> None: ...
        def detach(self) -> int: ...

    def __init__(self, process_obj: BaseProcess) -> None: ...
    def duplicate_for_child(self, fd: int) -> int: ...
    def poll(self, flag: int = ...) -> int | None: ...
    def wait(self, timeout: float | None = ...) -> int | None: ...
    def terminate(self) -> None: ...
