def METHOD_NAME(excel_object: pd.ExcelFile, sheet_name: str, year_range: tuple) -> pd.DataFrame:
    """
    Process a sheet from the given Excel file and return a cleaned DataFrame.
    Args:
        excel_object (pd.ExcelFile): The loaded Excel file to process.
        sheet_name (str): The name of the sheet to process from the Excel file.
        year_range (tuple): A tuple with 2 elements (start_year, end_year) indicating the years to include in the output DataFrame.
    Returns:
        pd.DataFrame: The cleaned and processed DataFrame.
    """
    # Read the sheet from the Excel file
    df = pd.read_excel(excel_object, sheet_name=sheet_name, header=5)
    # Drop unnecessary columns
    df = df.drop(df.columns[:3], axis=1)
    # Drop additional columns
    columns_to_drop = ["Units", "Notes", "Series"]
    df = df.drop(columns=[col for col in columns_to_drop if col in df.columns])
    # More column dropping
    df = df.drop(df.columns[1], axis=1)
    df = df.drop(df.columns[-1], axis=1)
    # Remove rows and columns with all NaN values
    df.dropna(how="all", axis=1, inplace=True)
    df.dropna(how="all", axis=0, inplace=True)
    # Rename the 'Basic data and indicators' column to 'country'
    df = df.rename(columns={"Basic data and indicators": "country"})
    # Create the list of years to include in the output DataFrame
    years = [year for year in range(year_range[0], year_range[1])]
    non_year_cols = [col for col in df.columns if col not in years]
    # Melt the DataFrame to a long format
    df = df.melt(id_vars=non_year_cols, value_vars=years, var_name="year")
    # Fill missing country names with the previous valid value
    df["country"].fillna(method="ffill", inplace=True)
    # Drop rows with all NaN values in columns other than 'country', 'year', and 'value'
    df.dropna(subset=df.columns.difference(["country", "year", "value"]), how="all", inplace=True)
    if sheet_name in ["Inbound Tourism-Accommodation", "Domestic Tourism-Accommodation"]:
        cols_to_fill = [col for col in df.columns if col not in ["country", "year", "value", "Unnamed: 6"]]
        df[cols_to_fill] = df[cols_to_fill].fillna(method="ffill")
    # Combine remaining columns to create the 'indicator' column
    df["indicator"] = df.drop(columns=["country", "value", "year"]).apply(
        lambda x: ",".join(x.dropna().astype(str)), axis=1
    )
    df.dropna(subset=["value"], inplace=True)
    # Keep only the necessary columns
    cols_to_keep = ["country", "year", "value", "indicator"]
    df = df[cols_to_keep]
    # Drop rows with missing 'value' and replace '..' with NaN
    df.dropna(subset=["value"], inplace=True)
    df["value"] = df["value"].replace("..", np.nan)
    # Add the sheet name to the 'indicator' column
    df["indicator"] = sheet_name + "-" + df["indicator"].astype(str)
    # Set the index to 'country', 'year', and 'indicator'
    df.set_index(["country", "year", "indicator"], inplace=True)
    assert (
        df.index.is_unique
    ), f"Index is not unique in sheet '{sheet_name}'."  # Added assert statement to check index is unique
    return df