async def METHOD_NAME(
    request: InferHelmChartDependenciesRequest,
    first_party_mapping: FirstPartyHelmChartMapping,
    third_party_mapping: ThirdPartyHelmArtifactMapping,
    subsystem: HelmSubsystem,
) -> InferredDependencies:
    address = request.field_set.address
    # Parse Chart.yaml for explicitly set dependencies.
    explicitly_provided_deps, metadata = await MultiGet(
        Get(ExplicitlyProvidedDependencies, DependenciesRequest(request.field_set.dependencies)),
        Get(HelmChartMetadata, HelmChartMetaSourceField, request.field_set.source),
    )
    remotes = subsystem.remotes()
    def resolve_dependency_url(dependency: HelmChartDependency) -> str | None:
        if not dependency.repository:
            registry = remotes.default_registry
            if registry:
                return f"{registry.address}/{dependency.name}"
            return None
        else:
            return f"{dependency.repository}/{dependency.name}"
    # Associate dependencies in Chart.yaml with addresses.
    dependencies: OrderedSet[Address] = OrderedSet()
    for chart_dep in metadata.dependencies:
        candidate_addrs = []
        first_party_dep = first_party_mapping.get(chart_dep.name)
        if first_party_dep:
            candidate_addrs.append(first_party_dep)
        dependency_url = resolve_dependency_url(chart_dep)
        third_party_dep = third_party_mapping.get(dependency_url) if dependency_url else None
        if third_party_dep:
            candidate_addrs.append(third_party_dep)
        if not candidate_addrs:
            raise UnknownHelmChartDependency(address, chart_dep)
        matches = frozenset(candidate_addrs).difference(explicitly_provided_deps.includes)
        explicitly_provided_deps.maybe_warn_of_ambiguous_dependency_inference(
            matches,
            address,
            context=f"The Helm chart {address} declares `{chart_dep.name}` as dependency",
            import_reference="helm dependency",
        )
        maybe_disambiguated = explicitly_provided_deps.disambiguated(matches)
        if maybe_disambiguated:
            dependencies.add(maybe_disambiguated)
    logger.debug(
        f"Inferred {pluralize(len(dependencies), 'dependency')} for target at address: {address}"
    )
    return InferredDependencies(dependencies)