# DO NOT EDIT - AUTOMATICALLY GENERATED BY tests/make_test_stubs.py!
from __future__ import annotations
from typing import List
from typing import (
    Optional,
    Tuple,
    Union,
)


def C_ISA_1932_nozzle(D: float, Do: float, rho: float, mu: float, m: float) -> float: ...


def C_Miller_1996(
    D: float,
    Do: float,
    rho: float,
    mu: float,
    m: float,
    subtype: str = ...,
    taps: Optional[str] = ...,
    tap_position: Optional[str] = ...
) -> float: ...


def C_Reader_Harris_Gallagher(D: float, Do: float, rho: float, mu: float, m: float, taps: str = ...) -> float: ...


def C_Reader_Harris_Gallagher_wet_venturi_tube(
    mg: float,
    ml: float,
    rhog: float,
    rhol: float,
    D: float,
    Do: float,
    H: float = ...
) -> float: ...


def C_eccentric_orifice_ISO_15377_1998(D: float, Do: float) -> float: ...


def C_long_radius_nozzle(D: float, Do: float, rho: float, mu: float, m: float) -> float: ...


def C_quarter_circle_orifice_ISO_15377_1998(D: float, Do: float) -> float: ...


def C_venturi_nozzle(D: float, Do: float) -> float: ...


def C_wedge_meter_ISO_5167_6_2017(D: float, H: float) -> float: ...


def C_wedge_meter_Miller(D: float, H: float) -> float: ...


def K_to_discharge_coefficient(D: float, Do: float, K: float) -> float: ...


def cone_meter_expansibility_Stewart(D: float, Dc: float, P1: float, P2: float, k: float) -> float: ...


def dP_Reader_Harris_Gallagher_wet_venturi_tube(
    D: float,
    Do: float,
    P1: float,
    P2: float,
    ml: float,
    mg: float,
    rhol: float,
    rhog: float,
    H: float = ...
) -> float: ...


def dP_cone_meter(D: float, Dc: float, P1: float, P2: float) -> float: ...


def dP_orifice(D: float, Do: float, P1: float, P2: float, C: float) -> float: ...


def dP_venturi_tube(D: float, Do: float, P1: float, P2: float) -> float: ...


def dP_wedge_meter(D: float, H: float, P1: float, P2: float) -> float: ...


def diameter_ratio_cone_meter(D: float, Dc: float) -> float: ...


def diameter_ratio_wedge_meter(D: float, H: float) -> float: ...


def differential_pressure_meter_C_epsilon(
    D: float,
    D2: float,
    m: float,
    P1: float,
    P2: float,
    rho: float,
    mu: float,
    k: float,
    meter_type: str,
    taps: Optional[str] = ...,
    tap_position: Optional[str] = ...,
    C_specified: Optional[float] = ...,
    epsilon_specified: Optional[int] = ...
) -> Union[Tuple[float, float], Tuple[float, int]]: ...


def differential_pressure_meter_beta(D: float, D2: float, meter_type: str) -> float: ...


def differential_pressure_meter_dP(
    D: float,
    D2: float,
    P1: float,
    P2: float,
    C: Optional[float] = ...,
    meter_type: str = ...
) -> float: ...


def differential_pressure_meter_solver(
    D: float,
    rho: float,
    mu: float,
    k: Optional[float] = ...,
    D2: Optional[float] = ...,
    P1: Optional[float] = ...,
    P2: Optional[float] = ...,
    m: Optional[float] = ...,
    meter_type: str = ...,
    taps: Optional[str] = ...,
    tap_position: Optional[str] = ...,
    C_specified: Optional[float] = ...,
    epsilon_specified: Optional[int] = ...
) -> float: ...


def discharge_coefficient_to_K(D: float, Do: float, C: float) -> float: ...


def err_dp_meter_solver_D2(
    D2: float,
    D: float,
    m: float,
    P1: float,
    P2: float,
    rho: float,
    mu: float,
    k: float,
    meter_type: str,
    taps: Optional[str],
    tap_position: Optional[str],
    C_specified: Optional[float],
    epsilon_specified: None
) -> float: ...


def err_dp_meter_solver_P1(
    P1: float,
    D: float,
    D2: float,
    m: float,
    P2: float,
    rho: float,
    mu: float,
    k: float,
    meter_type: str,
    taps: Optional[str],
    tap_position: Optional[str],
    C_specified: Optional[float],
    epsilon_specified: None
) -> float: ...


def err_dp_meter_solver_P2(
    P2: float,
    D: float,
    D2: float,
    m: float,
    P1: float,
    rho: float,
    mu: float,
    k: float,
    meter_type: str,
    taps: Optional[str],
    tap_position: Optional[str],
    C_specified: Optional[float],
    epsilon_specified: None
) -> float: ...


def err_dp_meter_solver_m(
    m_D: float,
    D: float,
    D2: float,
    P1: float,
    P2: float,
    rho: float,
    mu: float,
    k: float,
    meter_type: str,
    taps: Optional[str],
    tap_position: Optional[str],
    C_specified: Optional[float],
    epsilon_specified: Optional[int]
) -> float: ...


def flow_coefficient(D: float, Do: float, C: float) -> float: ...


def flow_meter_discharge(
    D: float,
    Do: float,
    P1: float,
    P2: float,
    rho: float,
    C: float,
    expansibility: float = ...
) -> float: ...


def nozzle_expansibility(
    D: float,
    Do: float,
    P1: float,
    P2: float,
    k: float,
    beta: Optional[float] = ...
) -> float: ...


def orifice_expansibility(D: float, Do: float, P1: float, P2: float, k: float) -> float: ...


def orifice_expansibility_1989(D: float, Do: float, P1: float, P2: float, k: float) -> float: ...


def velocity_of_approach_factor(D: float, Do: float) -> float: ...

__all__: List[str]