from mixedlm import datasets, diagnostics, families, inference, nlme, utils
from mixedlm.datasets import (
    load_cake,
    load_cbpp,
    load_dyestuff,
    load_dyestuff2,
    load_insteval,
    load_pastes,
    load_penicillin,
    load_sleepstudy,
)
from mixedlm.formula.parser import findbars, is_mixed_formula, nobars, parse_formula, subbars
from mixedlm.inference.anova import AnovaResult, anova
from mixedlm.inference.bootstrap import bootMer
from mixedlm.inference.emmeans import Emmeans, emmeans
from mixedlm.inference.profile import plot_profiles, splom_profiles
from mixedlm.models.control import GlmerControl, LmerControl, glmerControl, lmerControl
from mixedlm.models.glmer import GlmerMod, GlmerVarCorr, glmer, glmer_nb
from mixedlm.models.lmer import (
    LmerMod,
    LogLik,
    ModelTerms,
    PredictResult,
    RanefResult,
    RePCA,
    RePCAGroup,
    VarCorr,
    VarCorrGroup,
    lmer,
)
from mixedlm.models.modular import (
    GlmerDevfun,
    GlmerParsedFormula,
    LmerDevfun,
    LmerParsedFormula,
    OptimizeResult,
    glFormula,
    lFormula,
    mkGlmerDevfun,
    mkGlmerMod,
    mkLmerDevfun,
    mkLmerMod,
    optimizeGlmer,
    optimizeLmer,
)
from mixedlm.models.nlmer import NlmerMod, nlmer
from mixedlm.utils.lme4_compat import (
    ConvergenceInfo,
    DevComp,
    GHrule,
    checkConv,
    convergence_ok,
    devcomp,
    factorize,
    fortify,
    lmList,
    mkMerMod,
    ngrps,
    pvalues,
    sigma,
    vcconv,
)

__version__ = "0.1.0"

__all__ = [
    "lmer",
    "LmerMod",
    "lmerControl",
    "LmerControl",
    "glmer",
    "glmer_nb",
    "GlmerMod",
    "glmerControl",
    "GlmerControl",
    "nlmer",
    "NlmerMod",
    "anova",
    "AnovaResult",
    "emmeans",
    "Emmeans",
    "bootMer",
    "sigma",
    "ngrps",
    "lmList",
    "pvalues",
    "checkConv",
    "ConvergenceInfo",
    "convergence_ok",
    "plot_profiles",
    "splom_profiles",
    "parse_formula",
    "nobars",
    "findbars",
    "subbars",
    "is_mixed_formula",
    "families",
    "nlme",
    "inference",
    "diagnostics",
    "datasets",
    "utils",
    "load_sleepstudy",
    "load_cbpp",
    "load_dyestuff",
    "load_dyestuff2",
    "load_penicillin",
    "load_cake",
    "load_pastes",
    "load_insteval",
    "fortify",
    "devcomp",
    "DevComp",
    "vcconv",
    "GHrule",
    "factorize",
    "mkMerMod",
    "LogLik",
    "ModelTerms",
    "PredictResult",
    "RanefResult",
    "VarCorr",
    "VarCorrGroup",
    "GlmerVarCorr",
    "RePCA",
    "RePCAGroup",
    "lFormula",
    "glFormula",
    "mkLmerDevfun",
    "mkGlmerDevfun",
    "optimizeLmer",
    "optimizeGlmer",
    "mkLmerMod",
    "mkGlmerMod",
    "LmerParsedFormula",
    "GlmerParsedFormula",
    "LmerDevfun",
    "GlmerDevfun",
    "OptimizeResult",
]
