def METHOD_NAME(
    case_number: str, charges: Tuple[OeciCharge, ...], charges_edits: Dict[str, Dict[str, str]]
) -> Tuple[Tuple[OeciCharge, ...], List[Charge]]:
    charges_without_charge_type = [
        charge for charge in charges if charge.ambiguous_charge_id not in charges_edits.keys()
    ]
    charges_with_charge_type = []
    for edit_action_ambiguous_charge_id, edit in charges_edits.items():
        if edit.get("edit_status", None) == EditStatus.ADD:
            new_charge = RecordEditor._add_charge(case_number, edit_action_ambiguous_charge_id, edit)
            charges_with_charge_type.append(new_charge)
        else:  # edit["edit_status"] is either UPDATE or DELETE
            updated_charge = RecordEditor._update_or_delete_charge(
                charges, case_number, edit_action_ambiguous_charge_id, edit
            )
            if isinstance(updated_charge, Charge):
                charges_with_charge_type.append(updated_charge)
            else:
                charges_without_charge_type.append(updated_charge)
    return tuple(charges_without_charge_type), charges_with_charge_type