def METHOD_NAME(circuit: "cirq.Circuit", frontend: str) -> "qbraid.QPROGRAM":
    """Converts a Cirq circuit to a type specified by the conversion type.
    Args:
        circuit: Cirq circuit to convert.
        frontend: String specifier for the converted circuit type.
    Raises:
        ProgramTypeError: If the input quantum program is not supported.
        CircuitConversionError: If the input quantum program could not be converted.
    Returns:
        :data:`~qbraid.QPROGRAM`: A ``conversion_type`` quantum circuit / program.
    """
    # pylint: disable=import-outside-toplevel
    try:
        if frontend == "qiskit":
            from qbraid.transpiler.cirq_qiskit import to_qiskit
            return to_qiskit(circuit)
        if frontend == "pyquil":
            from qbraid.transpiler.cirq_pyquil import to_pyquil
            program = to_pyquil(circuit)
            if circuits_allclose(circuit, program):
                return program
            cirq_decomp = from_qasm(to_qasm(circuit))
            return to_pyquil(cirq_decomp)
        if frontend == "braket":
            from qbraid.transpiler.cirq_braket import to_braket
            return to_braket(circuit)
        if frontend == "pytket":
            from qbraid.transpiler.cirq_pytket import to_pytket
            return to_pytket(circuit)
        if frontend == "qasm2":
            return to_qasm(circuit)
        if frontend == "qasm3":
            from qbraid.interface.qbraid_qasm3.tools import convert_to_qasm3
            qasm2_str = to_qasm(circuit)
            return convert_to_qasm3(qasm2_str)
        if frontend == "cirq":
            return circuit
    except Exception as err:
        raise CircuitConversionError(
            f"Cirq Circuit could not be converted to a " f"quantum program of type {frontend}."
        ) from err
    raise PackageValueError(frontend)