"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""

from __future__ import annotations
from mixpeek.types import BaseModel
from typing import Optional
from typing_extensions import NotRequired, TypedDict


class HDBSCANParametersTypedDict(TypedDict):
    min_cluster_size: NotRequired[int]
    r"""Minimum number of samples in each cluster"""
    min_samples: NotRequired[int]
    r"""Controls how conservative clustering is"""
    umap_neighbors: NotRequired[int]
    r"""Controls local versus global structure"""


class HDBSCANParameters(BaseModel):
    min_cluster_size: Optional[int] = 3
    r"""Minimum number of samples in each cluster"""

    min_samples: Optional[int] = 3
    r"""Controls how conservative clustering is"""

    umap_neighbors: Optional[int] = 15
    r"""Controls local versus global structure"""
