# This file was auto generated by Styx.
# Do not edit this file directly.

import typing
import pathlib
from styxdefs import *
import dataclasses

IMMV_METADATA = Metadata(
    id="36c60ed06eb8cb00f4d31f9c69cf56412092ddb0.boutiques",
    name="immv",
    package="fsl",
    container_image_tag="mcin/fsl:6.0.5",
)


class ImmvOutputs(typing.NamedTuple):
    """
    Output object returned when calling `immv(...)`.
    """
    root: OutputPathType
    """Output root folder. This is the root folder for all outputs."""


def immv(
    source_files: list[InputPathType],
    destination: str,
    runner: Runner | None = None,
) -> ImmvOutputs:
    """
    Moves images from one file or directory to another.
    
    Author: Unknown
    
    Args:
        source_files: Source files to be moved. Recognized file extensions:\
            .nii.gz, .nii, .img, .hdr, .img.gz, .hdr.gz.
        destination: Destination file or directory.
        runner: Command runner.
    Returns:
        NamedTuple of outputs (described in `ImmvOutputs`).
    """
    runner = runner or get_global_runner()
    execution = runner.start_execution(IMMV_METADATA)
    cargs = []
    cargs.append("immv")
    cargs.extend([execution.input_file(f) for f in source_files])
    cargs.append(destination)
    ret = ImmvOutputs(
        root=execution.output_file("."),
    )
    execution.run(cargs)
    return ret


__all__ = [
    "IMMV_METADATA",
    "ImmvOutputs",
    "immv",
]
