input: from typing import Dict, List
  
  def create_bpmn_diagram(process_label: str, clusters: Dict[str, List[str]], edges: Dict[str, Dict[str, Dict[str, str]]], connect_nodes: Dict[str, str], image_path: str) -> None:
      """ Create a BPMN diagram for a given process using Python and the bpmn_pgv library.
      The diagram should include clusters with specific tasks and edges defined within each cluster.
      Additionally, include nodes to be connected to the appropriate clusters using dashed edges.
      Finally, save the diagram as a PNG file and a DOT file.
      
      >>> create_bpmn_diagram("Liquidación de Créditos", 
      ... {
      ...     "SE": {
      ...         "se7": ("Recibir el documento protocolizado", "start"),
      ...         "se8": ("Revisar el documento protocolizado", "human"),
      ...         "se9": ("", "end")
      ...     },
      ...     "P": {
      ...         "p1": ("Firma del cheque", "human"),
      ...         "p2": ("Entregar cheque a beneficiario", "message")
      ...     },
      ...     "PR": {
      ...         "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")
      ...     }
      ... }, 
      ... {
      ...     "se7": {"se8": {}},
      ...     "se8": {"se9": {"style": "invis"}},
      ...     "p1": {"p2": {}},
      ...     "pr2": {"pr3": {}},
      ...     "pr3": {"pr4": {}},
      ...     "pr4": {"pr5": {}}
      ... }, 
      ... {
      ...     "SIGEFOMDES Administración": "database.png",
      ...     "SISAC": "database.png"
      ... }, 
      ... "images/")
      ... # Save the diagram as "proc4.png" and "proc4.dot"
      """
output:     from bpmn_pgv import BPMN, BPMNNode, BPMNCluster
      import graphviz as gv
  
      bpmn = BPMN()
      graph = bpmn.add_graph(process_label)
  
      for cluster_name, tasks in clusters.items():
          cluster = BPMNCluster(cluster_name)
          for task_id, (task_label, task_type) in tasks.items():
              node = BPMNNode(task_id, label=task_label, shape=task_type)
              cluster.add_node(node)
          graph.add_cluster(cluster)
  
      for src, dests in edges.items():
          for dest, edge_attrs in dests.items():
              graph.add_edge(src, dest, **edge_attrs)
  
      for node_label, image in connect_nodes.items():
          node = BPMNNode(node_label, label=node_label, shape="database", image=image)
          graph.add_node(node)
          for cluster in graph.clusters:
              graph.add_edge(node_label, list(cluster.nodes.keys())[0], style="dashed")
  
      graph.write_png(image_path + "proc4.png")
      graph.write_dot(image_path + "proc4.dot")