input: 
  def create_bpmn_diagram(process_label: str, clusters: dict, global_edges: dict, 
                         image_path: str) -> None:
      """
      Create and save a BPMN diagram for a given process using the bpmn_pgv library.
      The diagram should include clusters with specific tasks and edges defined within 
      each cluster, and connect additional nodes to the appropriate clusters using dashed edges.
      Finally, save the diagram as a PNG file and a DOT file.
      
      Example:
      clusters = {
          "Secretaría Ejecutiva": {"se7": ("Recibir el documento protocolizado", "start"),
                                   "se8": ("Revisar el documento protocolizado", "human"),
                                   "se9": ("", "end")},
          "Presidencia": {"p1": ("Firma del cheque", "human"),
                          "p2": ("Entregar cheque a beneficiario", "message")},
          "Presupuesto/Administración": {"pr2": ("Verificar documentación legal y elaborar certificación de disponibilidad", "human"),
                                        "pr3": ("Crear las cuentas por cobrar", "human"),
                                        "pr4": ("Generar tablas de amortización", "human"),
                                        "pr5": ("Imprimir y firmar orden de liquidación y cheque", "human")}
      }
      global_edges = {
          "Beneficiario": {"se7": {"style": "dashed"}},
          "se8": {"pr2": {"style": "dashed"}},
          "pr3": {"SIGEFOMDES Administración": {"style": "dashed"}},
          "pr4": {"SISAC": {"style": "dashed"}},
          "pr5": {"p1": {"style": "dashed"}},
          "p2": {"se9": {"style": "dashed"}, "Beneficiario": {"style": "dashed"}}
      }
      create_bpmn_diagram("Liquidación de Créditos", clusters, global_edges, IMAGE_PATH)
      """
  
output:     from bpmn_pgv import BPMN, BPMNNode, BPMNGraph
  
      bpmn_graph = BPMNGraph(process_label)
  
      for cluster_name, tasks in clusters.items():
          with bpmn_graph.cluster(cluster_name) as cluster:
              for task_id, (task_label, task_type) in tasks.items():
                  BPMNNode(cluster, task_id, label=task_label, shape=task_type)
  
      for from_node, to_nodes in global_edges.items():
          for to_node, edge_attrs in to_nodes.items():
              bpmn_graph.edge(from_node, to_node, **edge_attrs)
  
      bpmn_graph.layout()
      bpmn_graph.draw(image_path)
      bpmn_graph.save(image_path.replace(".png", ".dot"))