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


def LJA_fprime2(v: float, t1: float, terms_2: List[float], terms_3: List[float], N2: int) -> Tuple[float, float, float]: ...


def Li_Johns_Ahmadi_solution(
    zs: List[float],
    Ks: Union[List[float], List[float]],
    guess: None = ...
) -> Tuple[float, List[float], List[float]]: ...


def RRN_new_betas(
    betas: Union[List[float], List[float]],
    d_betas: List[float],
    damping: float,
    ns: List[float],
    Ks: List[List[float]],
    *args
) -> List[float]: ...


def Rachford_Rice_err(V_over_F: float, zs_k_minus_1: List[float], K_minus_1: List[float]) -> float: ...


def Rachford_Rice_err_LN2(
    y: float,
    zs: List[float],
    cis_ys: List[float],
    x0: float,
    V_over_F_min: float,
    N: int
) -> Tuple[float, float, float]: ...


def Rachford_Rice_err_fprime(
    V_over_F: float,
    zs_k_minus_1: List[float],
    zs_k_minus_1_2: List[float],
    K_minus_1: List[float]
) -> Tuple[float, float]: ...


def Rachford_Rice_err_fprime2(
    V_over_F: float,
    zs_k_minus_1: List[float],
    zs_k_minus_1_2: List[float],
    zs_k_minus_1_3: List[float],
    K_minus_1: List[float]
) -> Tuple[float, float, float]: ...


def Rachford_Rice_flash2_f_jac(
    betas: Union[List[float], List[float]],
    zs: List[float],
    Ks: List[List[float]]
) -> Tuple[List[float], List[List[float]]]: ...


def Rachford_Rice_flashN_f_jac(
    betas: List[float],
    ns: List[float],
    Ks: List[List[float]],
    Ksm1: Optional[List[List[float]]] = ...,
    zsKsm1: Optional[List[List[float]]] = ...
) -> Tuple[List[float], List[List[float]]]: ...


def Rachford_Rice_flash_error(V_over_F: float, zs: List[float], Ks: List[float]) -> float: ...


def Rachford_Rice_numpy_err_fprime2(
    V_over_F: float64,
    zs_k_minus_1: ndarray,
    K_minus_1: ndarray
) -> Tuple[float, float, float]: ...


def Rachford_Rice_polynomial(zs: List[float], Ks: Union[List[float], List[float]]) -> List[float]: ...


def Rachford_Rice_polynomial_3(zs: List[float], Cs: List[float]) -> List[float]: ...


def Rachford_Rice_polynomial_4(zs: List[float], Cs: List[float]) -> List[float]: ...


def Rachford_Rice_polynomial_5(zs: List[float], Cs: List[float]) -> List[float]: ...


def Rachford_Rice_solution(
    zs: List[float],
    Ks: Union[List[float], List[float]],
    fprime: Optional[Union[bool, float]] = ...,
    fprime2: bool = ...,
    guess: None = ...
) -> Tuple[float, List[float], List[float]]: ...


def Rachford_Rice_solution2(
    ns: List[float],
    Ks_y: List[float],
    Ks_z: List[float],
    beta_y: float = ...,
    beta_z: float = ...
) -> Tuple[float, float, List[float], List[float], List[float]]: ...


def Rachford_Rice_solutionN(
    ns: List[float],
    Ks: List[List[float]],
    betas: List[float]
) -> Tuple[List[float], List[List[float]]]: ...


def Rachford_Rice_solution_LN2(
    zs: List[float],
    Ks: Union[List[float], List[float]],
    guess: Optional[float] = ...
) -> Tuple[float, List[float], List[float]]: ...


def Rachford_Rice_solution_numpy(
    zs: List[float],
    Ks: Union[List[float], List[float]],
    guess: None = ...
) -> Tuple[float, List[float], List[float]]: ...


def Rachford_Rice_solution_polynomial(
    zs: List[float],
    Ks: Union[List[float], List[float]]
) -> Tuple[float, List[float], List[float]]: ...


def Rachford_Rice_valid_solution_naive(
    ns: List[float],
    betas: Union[List[float], List[float]],
    Ks: List[List[float]],
    limit_betas: bool = ...
) -> bool: ...


def _Rachford_Rice_analytical_3(
    zs: List[float],
    Ks: List[float]
) -> Union[Tuple[complex, List[complex], List[complex]], Tuple[float, List[float], List[float]]]: ...


def _Rachford_Rice_polynomial_coeff(value: int, zs: List[float], Cs: List[float], N: int) -> float: ...


def err_RR_poly(VF: float, poly: List[float]) -> float: ...


def flash_inner_loop(
    zs: List[float],
    Ks: Union[List[float], List[float]],
    method: Optional[str] = ...,
    guess: Optional[float] = ...,
    check: bool = ...
) -> Tuple[float, List[float], List[float]]: ...


def flash_inner_loop_methods(N: int) -> List[str]: ...

__all__: List[str]