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

import typing
import pathlib
from styxdefs import *
import dataclasses

VIENA_QUANT_METADATA = Metadata(
    id="51ebcfad9ed201b8538ee2a9ad0b420654d85cea.boutiques",
    name="viena_quant",
    package="fsl",
    container_image_tag="brainlife/fsl:6.0.4-patched2",
)


class VienaQuantOutputs(typing.NamedTuple):
    """
    Output object returned when calling `viena_quant(...)`.
    """
    root: OutputPathType
    """Output root folder. This is the root folder for all outputs."""
    output_quantification: OutputPathType
    """Output quantification result"""


def viena_quant(
    input1: InputPathType,
    input2: InputPathType,
    ventricle_mask: InputPathType,
    runner: Runner | None = None,
) -> VienaQuantOutputs:
    """
    Automated brain ventricle quantification tool.
    
    Author: FMRIB Analysis Group, University of Oxford
    
    URL: https://fsl.fmrib.ox.ac.uk/fsl/fslwiki
    
    Args:
        input1: Input image 1 (e.g. img1.nii.gz).
        input2: Input image 2 (e.g. img2.nii.gz).
        ventricle_mask: Ventricle mask (e.g. mask.nii.gz).
        runner: Command runner.
    Returns:
        NamedTuple of outputs (described in `VienaQuantOutputs`).
    """
    runner = runner or get_global_runner()
    execution = runner.start_execution(VIENA_QUANT_METADATA)
    cargs = []
    cargs.append("viena_quant")
    cargs.append(execution.input_file(input1))
    cargs.append(execution.input_file(input2))
    cargs.append(execution.input_file(ventricle_mask))
    ret = VienaQuantOutputs(
        root=execution.output_file("."),
        output_quantification=execution.output_file("output_quantification.nii.gz"),
    )
    execution.run(cargs)
    return ret


__all__ = [
    "VIENA_QUANT_METADATA",
    "VienaQuantOutputs",
    "viena_quant",
]
