from typing import Tuple


def get_supported_labels() -> Tuple[str, str, str, str, str, str, str, str, str, str, str, str, str]:
    """
    Returns
    -------
    tuple
        Supported labels.
    """
    return (
        'SLC',
        'SEG',
        'REP',
        'AVG',
        'SET',
        'ECO',
        'PHS',
        'LIN',
        'PAR',
        'ACQ',
        'NAV',
        'REV',
        'SMS',
        'REF',
        'IMA',  # For parallel imaging
        'NOISE',  # noise adjust scan, for iPAT acceleration
        'PMC',  # for MoCo/PMC Pulseq version to recognize blocks that can be prospectively corrected for motion
        'NOROT',
        'NOPOS',
        'NOSCL',  # instruct the interpreter to ignore the position, rotation or scaling of the FOV specified on the UI
        'ONCE',  # a 3-state flag that instructs the interpreter to alter the sequence when executing multiple repeats as follows: blocks with ONCE==0 are executed on every repetition; ONCE==1: only the first repetition; ONCE==2: only the last repetition
        'TRID',  # an integer ID of the TR (sequence segment) used by the GE interpreter to optimize the execution on the scanner
    )


def get_supported_rf_uses() -> Tuple[str, str, str, str, str, str, str]:
    """
    Returns
    -------
    tuple
        Supported RF use labels.
    """
    return 'excitation', 'refocusing', 'inversion', 'saturation', 'preparation', 'other', 'undefined'
