from ._types import NotSet as NotSet, RunPipeCmd as RunPipeCmd, not_set as not_set
from .shell import Shell as Shell
from typing import Any, Iterable

class XArgsMeta(type):
    def __sub__(self, cmd: RunPipeCmd) -> XArgs: ...
    def __call__(self, *args, **kwargs) -> XArgs: ...

class XArgs(metaclass=XArgsMeta):
    stdin: Any
    execute: Union[RunPipeCmd, NotSet]
    def __call__(self, stdin) -> XArgs: ...
    def __sub__(self, cmd: RunPipeCmd) -> XArgs: ...
    def iter_stdin(self) -> Iterable: ...
    def run(self, cmd: RunPipeCmd, shell: Shell) -> list: ...
    def __init__(self, stdin, execute) -> None: ...
xargs = XArgs
