from typing import List


def config_noisy(shots: int, optimization_level: int, transpiler_seed: int,
                 initial_layout: List[int], seed_simulator: int, private_config: dict
) -> dict:
    """The configuration loading for the noisy simulation.

    Args:
        shots: Number of shots to be used in the noisy simulation of the qcircuit.
        optimization_level: Level of optimisation for the qiskit transpiler.
        transpiler_seed: Seed for the transpilation process of the quantum circuit.
        initial_layout: Initial layout used by a quantum computer, in case the noisy
            simulation tries to mimic a certain quantum computer (e.g., IBM Cairo).
        seed_simulator: The seed for the overarching simulation.
        private_config: Dictionary specifying mainly the ibmq token to access ibm
            real quantum computers, in case the simulation should mimic a certain
            real quantum computer.
    Returns:
        Dictionary of the configuration for the noisy simulation of the quantum circuit.
    """
    config_noisy = {
    "backend_config": {"shots": shots,
                       "optimization_level": optimization_level,
                       "transpiler_seed": transpiler_seed,
                       "initial_layout": initial_layout,
                       "seed_simulator": seed_simulator
                       },
    "ibmq_api": private_config["IBMQ"]
    }

    return config_noisy