def parse_file_size(value: str) -> int:
    """Parse a string to return an integer file size."""
    value = value.lower()
    if value.endswith('t') or value.endswith('tib'):
        return int(value.rstrip('t').rstrip('tib')) << 40
    elif value.endswith('g') or value.endswith('gib'):
        return int(value.rstrip('g').rstrip('gib')) << 30
    elif value.endswith('m') or value.endswith('mib'):
        return int(value.rstrip('m').rstrip('mib')) << 20
    elif value.endswith('k') or value.endswith('kib'):
        return int(value.rstrip('k').rstrip('kib')) << 10
    elif value.endswith('tb'):
        return int(value[:2]) * 10**12
    elif value.endswith('gb'):
        return int(value[:2]) * 10**9
    elif value.endswith('mb'):
        return int(value[:2]) * 10**6
    elif value.endswith('kb'):
        return int(value[:2]) * 10**3
    return int(value)