"""ptspy public API.

Top-level names exported via ``__all__`` are the supported package interface.
Names not listed in ``__all__`` should be treated as internal and may change
without notice.

Stability policy:
- The ``ptspy`` top-level API in ``__all__`` is maintained with best-effort
  compatibility across patch/minor releases in the current 0.x series.
- Experimental areas (for example ``ptspy.more``) are intentionally less stable
  and may evolve faster.
"""
from __future__ import annotations

__version__ = "0.1.0"

from .core.colors import colorCube, colorInterpolation, colorPicker, colorScheme, cubeHCL, gradient
from .core.compose import gridPoints, irregular, populate, random, steps
from .core.elements import P, P2, P3, TBD, partial, randomizer, toPArray
from .core.form import Form, frame, frames, perlinNoise
from .core.geom import (
    Circle,
    DEGREE_TO_RADIAN,
    Matrix2D,
    GAUSSIAN,
    HALF_PI,
    ONE_DEGREE,
    PI,
    QUARTER_PI,
    RADIAN_TO_DEGREE,
    Rectangle,
    SMALL_NUMBER,
    TWO_PI,
    bsplineToBezier,
    cardinalToBezier,
    hermiteToBezier,
    reflect2D,
    regularPolygon,
    rotate2D,
    sampleBezier,
    sampleBspline,
    sampleCardinal,
    scale2D,
    skew2D,
    toDegree,
    toRadian,
    transform2D,
    translate2D,
)
from .core.process import (
    F,
    StageFunction,
    attachPositionIndex,
    bound,
    changeDims,
    expand,
    group,
    interpolate,
    interpolateIndices,
    interleave,
    pipeline,
    pointsToRegions,
    reversePipeline,
    shapingFunction,
    unpackResult,
)
from .core.util import (
    arrayToImage,
    getColor,
    getSkiaProp,
    imageToArray,
    pretty,
    toARGB,
    toARGBInt,
    toRGBA,
    validateColorLike,
    validateNumberSequence1D,
    validateNumberSequence2D,
    validateShapeND,
)
from .typing import (
    ColorLike,
    ColorOrShader,
    GradientStyle,
    IntArray,
    IntArrayOrList,
    IntArrayOrScalar,
    Number,
    NumberSequence1D,
    NumberSequence2D,
    NumberSequenceND,
    PArray,
    PArrayLike,
    PArrayOrScalar,
    PadMode,
    PointStyle,
    RoundingMode,
    ShapingFunction,
    ShapingMethod,
    StrokeJoinCap,
)

__all__ = (
    "__version__",
    "partial",
    "TBD",
    "P",
    "P2",
    "P3",
    "toPArray",
    "randomizer",
    "Form",
    "frame",
    "frames",
    "perlinNoise",
    "populate",
    "steps",
    "gridPoints",
    "random",
    "irregular",
    "unpackResult",
    "pipeline",
    "reversePipeline",
    "StageFunction",
    "F",
    "shapingFunction",
    "expand",
    "changeDims",
    "group",
    "interleave",
    "bound",
    "interpolate",
    "interpolateIndices",
    "pointsToRegions",
    "attachPositionIndex",
    "cubeHCL",
    "colorCube",
    "colorInterpolation",
    "colorPicker",
    "colorScheme",
    "gradient",
    "pretty",
    "getSkiaProp",
    "toRGBA",
    "toARGB",
    "toARGBInt",
    "getColor",
    "imageToArray",
    "arrayToImage",
    "SMALL_NUMBER",
    "PI",
    "TWO_PI",
    "HALF_PI",
    "QUARTER_PI",
    "ONE_DEGREE",
    "RADIAN_TO_DEGREE",
    "DEGREE_TO_RADIAN",
    "GAUSSIAN",
    "toRadian",
    "toDegree",
    "bsplineToBezier",
    "cardinalToBezier",
    "hermiteToBezier",
    "sampleBspline",
    "sampleCardinal",
    "sampleBezier",
    "regularPolygon",
    "Matrix2D",
    "translate2D",
    "rotate2D",
    "scale2D",
    "skew2D",
    "reflect2D",
    "transform2D",
    "Rectangle",
    "Circle",
    "Number",
    "StrokeJoinCap",
    "PointStyle",
    "PArray",
    "PArrayOrScalar",
    "IntArray",
    "IntArrayOrScalar",
    "IntArrayOrList",
    "NumberSequence1D",
    "NumberSequence2D",
    "NumberSequenceND",
    "PArrayLike",
    "ColorLike",
    "ColorOrShader",
    "ShapingFunction",
    "ShapingMethod",
    "GradientStyle",
    "PadMode",
    "RoundingMode",
    "validateNumberSequence1D",
    "validateNumberSequence2D",
    "validateShapeND",
    "validateColorLike",
)
