"""
This type stub file was generated by pyright.
"""

"""This module generates and does computation with molecular surfaces.
"""
def generate_surface_marching_cubes(molecule, remove_hoh=..., scaling=..., probe_radius=...): # -> tuple[Unknown, Unknown | ndarray[Unknown, Unknown]]:
    """Generates a molecular surface mesh using the marching_cubes
    method from scikit-image. Ignores hydrogens present in the molecule.

    Parameters
    ----------
    molecule : oddt.toolkit.Molecule object
        Molecule for which the surface will be generated

    remove_hoh : bool (default = False)
        If True, remove waters from the molecule before generating the surface.
        Requires molecule.protein to be set to True.

    scaling : float (default = 1.0)
        Expands the grid in which computation is done by a factor of scaling.
        Results in a more accurate representation of the surface, but increases
        computation time.

    probe_radius : float (default = 1.4)
        Radius of a ball used to patch up holes inside the molecule
        resulting from some molecular distances being larger
        (usually in protein). Basically reduces the surface to one
        accesible by other molecules of radius smaller than probe_radius.

    Returns
    -------
    verts : numpy array
        Spatial coordinates for mesh vertices.

    faces : numpy array
        Faces are defined by referencing vertices from verts.
    """
    ...

def find_surface_residues(molecule, max_dist=..., scaling=...):
    """Finds residues close to the molecular surface using
    generate_surface_marching_cubes. Ignores hydrogens and
    waters present in the molecule.

    Parameters
    ----------
    molecule : oddt.toolkit.Molecule
        Molecule to find surface residues in.

    max_dist : array_like, numeric or None (default = None)
        Maximum distance from the surface where residues would
        still be considered close. If None, compares distances
        to radii of respective atoms.

    scaling : float (default = 1.0)
        Expands the grid in which computation is done by
        generate_surface_marching_cubes by a factor of scaling.
        Results in a more accurate representation of the surface,
        and therefore more accurate computation of distances
        but increases computation time.

    Returns
    -------
    atom_dict : numpy array
        An atom_dict containing only the surface residues
        from the original molecule.
    """
    ...

