input: from typing import Dict
  
  def create_bpmn_diagram(se_cluster: Dict[str, tuple], se_edges: Dict[str, dict], p_cluster: Dict[str, tuple], p_edges: Dict[str, dict], pr_cluster: Dict[str, tuple], pr_edges: Dict[str, dict], global_edges: Dict[str, dict]) -> None:
      """
      Create a BPMN diagram for FOMDES process 1 using the bpmn_pgv library. The diagram should include clusters for Secretaría Ejecutiva, Presidencia, and Presupuesto/Administración, with specific tasks and edges defined within each cluster. Additionally, include nodes for SIGEFOMDES Administración and SISAC, and connect them to the appropriate clusters using dashed edges. Finally, save the diagram as a PNG file named "proc4.png" and a DOT file named "proc4.dot".
      
      >>> se_cluster = {"se7": ("Recibir el documento protocolizado", "start"), "se8": ("Revisar el documento protocolizado", "human"), "se9": ("", "end")}
      >>> se_edges = {"se7": {"se8": {}}, "se8": {"se9": {"style": "invis"}}}
      >>> p_cluster = {"p1": ("Firma del cheque", "human"), "p2": ("Entregar cheque a beneficiario", "message")}
      >>> p_edges = {"p1":{"p2": {}}}
      >>> pr_cluster = {"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")}
      >>> pr_edges = {"pr2": {"pr3": {}}, "pr3": {"pr4": {}}, "pr4": {"pr5": {}}}
      >>> 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(se_cluster, se_edges, p_cluster, p_edges, pr_cluster, pr_edges, global_edges)
      
      No return value, but should generate 'proc4.png' and 'proc4.dot' files.
      """
output:     from bpmn_pgv import BPMN, BPMNNode, BPMNEdge
  
      # Create a new BPMN diagram
      bpmn_diagram = BPMN()
  
      # Add clusters for Secretaría Ejecutiva, Presidencia, and Presupuesto/Administración
      se_cluster_id = bpmn_diagram.add_cluster("Secretaría Ejecutiva")
      p_cluster_id = bpmn_diagram.add_cluster("Presidencia")
      pr_cluster_id = bpmn_diagram.add_cluster("Presupuesto/Administración")
  
      # Add nodes and edges for Secretaría Ejecutiva
      se_nodes = {}
      for node_id, (label, node_type) in se_cluster.items():
          se_nodes[node_id] = bpmn_diagram.add_node(label, node_type, cluster=se_cluster_id)
      for from_node, edges in se_edges.items():
          for to_node, edge_attrs in edges.items():
              bpmn_diagram.add_edge(se_nodes[from_node], se_nodes[to_node], **edge_attrs)
  
      # Add nodes and edges for Presidencia
      p_nodes = {}
      for node_id, (label, node_type) in p_cluster.items():
          p_nodes[node_id] = bpmn_diagram.add_node(label, node_type, cluster=p_cluster_id)
      for from_node, edges in p_edges.items():
          for to_node, edge_attrs in edges.items():
              bpmn_diagram.add_edge(p_nodes[from_node], p_nodes[to_node], **edge_attrs)
  
      # Add nodes and edges for Presupuesto/Administración
      pr_nodes = {}
      for node_id, (label, node_type) in pr_cluster.items():
          pr_nodes[node_id] = bpmn_diagram.add_node(label, node_type, cluster=pr_cluster_id)
      for from_node, edges in pr_edges.items():
          for to_node, edge_attrs in edges.items():
              bpmn_diagram.add_edge(pr_nodes[from_node], pr_nodes[to_node], **edge_attrs)
  
      # Add global nodes and edges
      global_nodes = {}
      for from_node, edges in global_edges.items():
          if from_node not in global_nodes:
              global_nodes[from_node] = bpmn_diagram.add_node(from_node, "global")
          for to_node, edge_attrs in edges.items():
              if to_node not in global_nodes:
                  global_nodes[to_node] = bpmn_diagram.add_node(to_node, "global")
              bpmn_diagram.add_edge(global_nodes[from_node], global_nodes[to_node], **edge_attrs)
  
      # Save the diagram as a PNG and DOT file
      bpmn_diagram.write_png("proc4.png")
      bpmn_diagram.write_dot("proc4.dot")