"""This file provides autocompletions for the ZOS-API and was automatically generated.
It should not be edited manually.
"""

from typing import overload

from zospy.api.stubs._ZOSAPI.Analysis import (
    AnalysisIDM,
    ColorPaletteType,
    ErrorType,
    GridPlotType,
    IA_,
    IColorTranslator,
    IMessage,
    IMessages,
    IUser2DLineData,
    IUserGridData,
    IUserGridRGBData,
    IUserTextData,
    POPSampling,
    UserAnalysisDataType,
)
from zospy.api.stubs._ZOSAPI.Analysis.Data import IAR_
from zospy.api.stubs._ZOSAPI.Analysis.Settings import IAS_
from zospy.api.stubs._ZOSAPI.Common import ISettingsData, ZemaxColor

from zospy.api.stubs._ZOSAPI_constants.Analysis import (
    AnalysisIDM,
    Beam,
    BestFitSphereOptions,
    ColorPaletteType,
    DetectorViewerShowAsTypes,
    DetectorViewerShowDataTypes,
    ErrorType,
    GiaShowAsTypes,
    GridPlotType,
    HuygensShowAsTypes,
    HuygensSurfaceMftShowAsTypes,
    POPSampling,
    RemoveOptions,
    SampleSizes,
    SampleSizes_ContrastLoss,
    SampleSizes_Pow2Plus1,
    SampleSizes_Pow2Plus1_X,
    ShowAs,
    SurfaceCurvatureCrossData,
    SurfaceCurvatureData,
    SurfacePhaseData,
    SurfacePhaseSlopeCrossData,
    SurfacePhaseSlopeData,
    SurfaceSagData,
    SurfaceSlopeCrossData,
    SurfaceSlopeData,
    UserAnalysisDataType,
)

from zospy.api.stubs._ZOSAPI.Analysis import (
    Data,
    PhysicalOptics,
    RayTracing,
    Settings,
    Tolerancing,
)

__all__ = (
    "Data",
    "PhysicalOptics",
    "RayTracing",
    "Settings",
    "Tolerancing",
    "AnalysisIDM",
    "Beam",
    "BestFitSphereOptions",
    "ColorPaletteType",
    "DetectorViewerShowAsTypes",
    "DetectorViewerShowDataTypes",
    "ErrorType",
    "GiaShowAsTypes",
    "GridPlotType",
    "HuygensShowAsTypes",
    "HuygensSurfaceMftShowAsTypes",
    "I_Analyses",
    "IA_",
    "IColorTranslator",
    "IMessage",
    "IMessages",
    "IUser2DLineData",
    "IUserAnalysisData",
    "IUserGridData",
    "IUserGridRGBData",
    "IUserTextData",
    "POPSampling",
    "RemoveOptions",
    "SampleSizes",
    "SampleSizes_ContrastLoss",
    "SampleSizes_Pow2Plus1",
    "SampleSizes_Pow2Plus1_X",
    "ShowAs",
    "SurfaceCurvatureCrossData",
    "SurfaceCurvatureData",
    "SurfacePhaseData",
    "SurfacePhaseSlopeCrossData",
    "SurfacePhaseSlopeData",
    "SurfaceSagData",
    "SurfaceSlopeCrossData",
    "SurfaceSlopeData",
    "UserAnalysisDataType",
)

# AnalysisIDM is imported as constant

# Beam is imported as constant

# BestFitSphereOptions is imported as constant

# ColorPaletteType is imported as constant

# DetectorViewerShowAsTypes is imported as constant

# DetectorViewerShowDataTypes is imported as constant

# ErrorType is imported as constant

# GiaShowAsTypes is imported as constant

# GridPlotType is imported as constant

# HuygensShowAsTypes is imported as constant

# HuygensSurfaceMftShowAsTypes is imported as constant

class I_Analyses:
    @property
    def NumberOfAnalyses(self) -> int: ...
    @overload
    def CloseAnalysis(self, index: int) -> bool: ...
    @overload
    def CloseAnalysis(self, analysis: IA_) -> bool: ...
    def CreateColorTranslatorAuto(
        self, palette: ColorPaletteType, inversePalette: bool, numberOfShades: int
    ) -> IColorTranslator: ...
    def CreateColorTranslatorFixed(
        self,
        minValue: float,
        maxValue: float,
        palette: ColorPaletteType,
        inversePalette: bool,
        numberOfShades: int,
    ) -> IColorTranslator: ...
    def CreateLogColorTranslatorAuto(
        self,
        palette: ColorPaletteType,
        inversePalette: bool,
        logBase: float,
        numberOfShades: int,
    ) -> IColorTranslator: ...
    def CreateLogColorTranslatorFixed(
        self,
        minValue: float,
        maxValue: float,
        palette: ColorPaletteType,
        inversePalette: bool,
        logBase: float,
        numberOfShades: int,
    ) -> IColorTranslator: ...
    def Get_AnalysisAtIndex(self, index: int) -> IA_: ...
    def New_AbsorptionVsAngle(self) -> IA_: ...
    def New_AbsorptionVsWavelength(self) -> IA_: ...
    def New_Analysis(self, AnalysisType: AnalysisIDM) -> IA_: ...
    def New_Analysis_SettingsFirst(self, AnalysisType: AnalysisIDM) -> IA_: ...
    def New_ConfigurationMatrixSpot(self) -> IA_: ...
    def New_ContrastLossMap(self) -> IA_: ...
    def New_CriticalRayTracer(self) -> IA_: ...
    def New_DetectorViewer(self) -> IA_: ...
    def New_DiattenuationVsAngle(self) -> IA_: ...
    def New_DiattenuationVsWavelength(self) -> IA_: ...
    def New_DiffractionEncircledEnergy(self) -> IA_: ...
    def New_ExtendedSourceEncircledEnergy(self) -> IA_: ...
    def New_FftMtf(self) -> IA_: ...
    def New_FftMtfMap(self) -> IA_: ...
    def New_FftMtfvsField(self) -> IA_: ...
    def New_FftPsf(self) -> IA_: ...
    def New_FftPsfCrossSection(self) -> IA_: ...
    def New_FftPsfLineEdgeSpread(self) -> IA_: ...
    def New_FftSurfaceMtf(self) -> IA_: ...
    def New_FftThroughFocusMtf(self) -> IA_: ...
    def New_FieldCurvatureAndDistortion(self) -> IA_: ...
    def New_FileComparator(self) -> IA_: ...
    def New_FocalShiftDiagram(self) -> IA_: ...
    def New_Foucault(self) -> IA_: ...
    def New_FullFieldAberration(self) -> IA_: ...
    def New_FullFieldSpot(self) -> IA_: ...
    def New_GeometricEncircledEnergy(self) -> IA_: ...
    def New_GeometricImageAnalysis(self) -> IA_: ...
    def New_GeometricLineEdgeSpread(self) -> IA_: ...
    def New_GeometricMtf(self) -> IA_: ...
    def New_GeometricMtfMap(self) -> IA_: ...
    def New_GeometricMtfvsField(self) -> IA_: ...
    def New_GeometricThroughFocusMtf(self) -> IA_: ...
    def New_GridDistortion(self) -> IA_: ...
    def New_GrinProfile(self) -> IA_: ...
    def New_HuygensMtf(self) -> IA_: ...
    def New_HuygensMtfvsField(self) -> IA_: ...
    def New_HuygensPsf(self) -> IA_: ...
    def New_HuygensPsfCrossSection(self) -> IA_: ...
    def New_HuygensSurfaceMtf(self) -> IA_: ...
    def New_HuygensThroughFocusMtf(self) -> IA_: ...
    def New_ImageSimulation(self) -> IA_: ...
    def New_Interferogram(self) -> IA_: ...
    def New_InternalTransmissionvsWavelength(self) -> IA_: ...
    def New_LateralColor(self) -> IA_: ...
    def New_LongitudinalAberration(self) -> IA_: ...
    def New_MatrixSpot(self) -> IA_: ...
    def New_NSCGeometricMtf(self) -> IA_: ...
    def New_NSCSingleRayTrace(self) -> IA_: ...
    def New_NSCSurfaceSag(self) -> IA_: ...
    def New_OpticalPathFan(self) -> IA_: ...
    def New_PathAnalysis(self) -> IA_: ...
    def New_PhaseVsAngle(self) -> IA_: ...
    def New_PhaseVsWavelength(self) -> IA_: ...
    def New_PupilAberrationFan(self) -> IA_: ...
    def New_QuickYield(self) -> IA_: ...
    def New_RayFan(self) -> IA_: ...
    def New_RayTrace(self) -> IA_: ...
    def New_ReflectionVsAngle(self) -> IA_: ...
    def New_ReflectionVsWavelength(self) -> IA_: ...
    def New_RelativeIllumination(self) -> IA_: ...
    def New_RetardanceVsAngle(self) -> IA_: ...
    def New_RetardanceVsWavelength(self) -> IA_: ...
    def New_RMSField(self) -> IA_: ...
    def New_RMSFieldMap(self) -> IA_: ...
    def New_RMSFocus(self) -> IA_: ...
    def New_RMSLambdaDiagram(self) -> IA_: ...
    def New_SeidelCoefficients(self) -> IA_: ...
    def New_SeidelDiagram(self) -> IA_: ...
    def New_StandardSpot(self) -> IA_: ...
    def New_SurfaceCurvature(self) -> IA_: ...
    def New_SurfaceCurvatureCross(self) -> IA_: ...
    def New_SurfacePhase(self) -> IA_: ...
    def New_SurfacePhaseCross(self) -> IA_: ...
    def New_SurfacePhaseSlope(self) -> IA_: ...
    def New_SurfacePhaseSlopeCross(self) -> IA_: ...
    def New_SurfaceSag(self) -> IA_: ...
    def New_SurfaceSagCross(self) -> IA_: ...
    def New_SurfaceSlope(self) -> IA_: ...
    def New_SurfaceSlopeCross(self) -> IA_: ...
    def New_ThroughFocusSpot(self) -> IA_: ...
    def New_TolerancingHistogram(self) -> IA_: ...
    def New_TolerancingYield(self) -> IA_: ...
    def New_TransmissionVsAngle(self) -> IA_: ...
    def New_TransmissionVsWavelength(self) -> IA_: ...
    def New_WavefrontMap(self) -> IA_: ...
    def New_XXXTemplateXXX(self) -> IA_: ...
    def New_ZernikeAnnularCoefficients(self) -> IA_: ...
    def New_ZernikeCoefficientsVsField(self) -> IA_: ...
    def New_ZernikeFringeCoefficients(self) -> IA_: ...
    def New_ZernikeStandardCoefficients(self) -> IA_: ...
    def RunHighSamplingPOP(
        self,
        configFile: str,
        xSampling: POPSampling,
        ySampling: POPSampling,
        outputTextFile: str,
        outputBeamFileName: str,
        saveBeamAtAllSurfaces: bool,
    ) -> IMessage: ...

class IA_:
    @property
    def Title(self) -> str: ...
    @property
    def GetAnalysisName(self) -> str: ...
    @property
    def AnalysisType(self) -> AnalysisIDM: ...
    @property
    def StatusMessages(self) -> IMessages: ...
    @property
    def HasAnalysisSpecificSettings(self) -> bool: ...
    def Apply(self) -> IMessage: ...
    def ApplyAndWaitForCompletion(self) -> IMessage: ...
    def Close(self) -> None: ...
    def GetResults(self) -> IAR_: ...
    def GetSettings(self) -> IAS_: ...
    def IsRunning(self) -> bool: ...
    def Release(self) -> None: ...
    def Terminate(self) -> bool: ...
    def ToFile(self, Filename: str, showSettings: bool, verify: bool) -> None: ...
    def WaitForCompletion(self) -> None: ...

class IColorTranslator:
    @property
    def Palette(self) -> ColorPaletteType: ...
    @property
    def IsInversePalette(self) -> bool: ...
    @property
    def IsAutoScaled(self) -> bool: ...
    @property
    def NumberOfShades(self) -> int: ...
    @property
    def MinValue(self) -> float: ...
    @property
    def MaxValue(self) -> float: ...
    @property
    def IsLog(self) -> bool: ...
    @property
    def LogBase(self) -> float: ...
    @property
    def CanConvertSingleValue(self) -> bool: ...
    def GetRGB(
        self, fullSize: int, data: list[float]
    ) -> tuple[list[int], list[int], list[int]]: ...
    def GetRGB2DFloatSafe(self, vals: list[list[float]]) -> list[list[list[float]]]: ...
    def GetRGB2DSafe(self, vals: list[list[float]]) -> list[list[list[int]]]: ...
    def GetRGBFloat(
        self, fullSize: int, data: list[float]
    ) -> tuple[list[float], list[float], list[float]]: ...
    def GetRGBFloatSafe(self, vals: list[float]) -> list[list[float]]: ...
    def GetRGBSafe(self, vals: list[float]) -> list[list[int]]: ...
    def GetSingleRGB(self, x: float) -> tuple[bool, int, int, int]: ...
    def GetSingleRGBFloat(self, x: float) -> tuple[bool, float, float, float]: ...

class IMessage:
    @property
    def ErrorCode(self) -> ErrorType: ...
    @property
    def Text(self) -> str: ...

class IMessages:
    def AllToString(self) -> str: ...
    @overload
    def WriteLine(self, s: str, userV: int, settingsV: int) -> None: ...
    @overload
    def WriteLine(self, s: str, userV: bool, settingsV: bool) -> None: ...
    @overload
    def WriteLine(self, s: str, userV: float, settingsV: float) -> None: ...
    @overload
    def WriteLine(self, s: str, userV: str, settingsV: str) -> None: ...

class IUser2DLineData:
    @property
    def PlotDescription(self) -> str: ...
    @property
    def XLabel(self) -> str: ...
    @XLabel.setter
    def XLabel(self, value: str) -> None: ...
    @property
    def YLabel(self) -> str: ...
    @YLabel.setter
    def YLabel(self, value: str) -> None: ...
    @property
    def NumberOfXValues(self) -> int: ...
    @property
    def NumberOfYValues(self) -> int: ...
    @property
    def NumberOfSeries(self) -> int: ...
    @property
    def XAxisMin(self) -> float: ...
    @XAxisMin.setter
    def XAxisMin(self, value: float) -> None: ...
    @property
    def XAxisMinAuto(self) -> bool: ...
    @XAxisMinAuto.setter
    def XAxisMinAuto(self, value: bool) -> None: ...
    @property
    def XAxisMax(self) -> float: ...
    @XAxisMax.setter
    def XAxisMax(self, value: float) -> None: ...
    @property
    def XAxisMaxAuto(self) -> bool: ...
    @XAxisMaxAuto.setter
    def XAxisMaxAuto(self, value: bool) -> None: ...
    @property
    def XAxisLog(self) -> bool: ...
    @XAxisLog.setter
    def XAxisLog(self, value: bool) -> None: ...
    @property
    def XAxisReversed(self) -> bool: ...
    @XAxisReversed.setter
    def XAxisReversed(self, value: bool) -> None: ...
    @property
    def XAxisSymmetric(self) -> bool: ...
    @XAxisSymmetric.setter
    def XAxisSymmetric(self, value: bool) -> None: ...
    @property
    def YAxisMin(self) -> float: ...
    @YAxisMin.setter
    def YAxisMin(self, value: float) -> None: ...
    @property
    def YAxisMinAuto(self) -> bool: ...
    @YAxisMinAuto.setter
    def YAxisMinAuto(self, value: bool) -> None: ...
    @property
    def YAxisMax(self) -> float: ...
    @YAxisMax.setter
    def YAxisMax(self, value: float) -> None: ...
    @property
    def YAxisMaxAuto(self) -> bool: ...
    @YAxisMaxAuto.setter
    def YAxisMaxAuto(self, value: bool) -> None: ...
    @property
    def YAxisLog(self) -> bool: ...
    @YAxisLog.setter
    def YAxisLog(self, value: bool) -> None: ...
    @property
    def YAxisReversed(self) -> bool: ...
    @YAxisReversed.setter
    def YAxisReversed(self, value: bool) -> None: ...
    @property
    def YAxisSymmetric(self) -> bool: ...
    @YAxisSymmetric.setter
    def YAxisSymmetric(self, value: bool) -> None: ...
    def AddSeries(
        self,
        seriesName: str,
        seriesColor: ZemaxColor,
        numberOfYValues: int,
        yValues: list[float],
    ) -> None: ...
    def AddSeriesSafe(
        self, seriesName: str, seriesColor: ZemaxColor, yValues: list[float]
    ) -> None: ...

class IUserAnalysisData:
    @property
    def AnalysisNumber(self) -> int: ...
    @property
    def PlotType(self) -> UserAnalysisDataType: ...
    @property
    def WindowTitle(self) -> str: ...
    @WindowTitle.setter
    def WindowTitle(self, value: str) -> None: ...
    @property
    def FeatureDescription(self) -> str: ...
    @FeatureDescription.setter
    def FeatureDescription(self, value: str) -> None: ...
    @property
    def HeaderData(self) -> list[str]: ...
    @HeaderData.setter
    def HeaderData(self, value: list[str]) -> None: ...
    @property
    def ShowLegend(self) -> bool: ...
    @ShowLegend.setter
    def ShowLegend(self, value: bool) -> None: ...
    @property
    def UserSettings(self) -> ISettingsData: ...
    @property
    def RunAnalysisOnSettingsClosed(self) -> bool: ...
    @RunAnalysisOnSettingsClosed.setter
    def RunAnalysisOnSettingsClosed(self, value: bool) -> None: ...
    def Make2DLinePlot(
        self, PlotDescription: str, numValues: int, xValues: list[float]
    ) -> IUser2DLineData: ...
    def Make2DLinePlotSafe(
        self, PlotDescription: str, xValues: list[float]
    ) -> IUser2DLineData: ...
    def MakeGridPlot(self, PlotDescription: str) -> IUserGridData: ...
    def MakeGridRGBPlot(self, PlotDescription: str) -> IUserGridRGBData: ...
    def MakeText(self) -> IUserTextData: ...

class IUserGridData:
    @property
    def PlotDescription(self) -> str: ...
    @property
    def XLabel(self) -> str: ...
    @XLabel.setter
    def XLabel(self, value: str) -> None: ...
    @property
    def YLabel(self) -> str: ...
    @YLabel.setter
    def YLabel(self, value: str) -> None: ...
    @property
    def ValueLabel(self) -> str: ...
    @ValueLabel.setter
    def ValueLabel(self, value: str) -> None: ...
    @property
    def ShowAsType(self) -> GridPlotType: ...
    @ShowAsType.setter
    def ShowAsType(self, value: GridPlotType) -> None: ...
    @property
    def NumberOfXDataValues(self) -> int: ...
    @property
    def XDataMin(self) -> float: ...
    @property
    def XDataMax(self) -> float: ...
    @property
    def DataDX(self) -> float: ...
    @property
    def NumberOfYDataValues(self) -> int: ...
    @property
    def YDataMin(self) -> float: ...
    @property
    def YDataMax(self) -> float: ...
    @property
    def DataDY(self) -> float: ...
    @property
    def XAxisMin(self) -> float: ...
    @XAxisMin.setter
    def XAxisMin(self, value: float) -> None: ...
    @property
    def XAxisMinAuto(self) -> bool: ...
    @XAxisMinAuto.setter
    def XAxisMinAuto(self, value: bool) -> None: ...
    @property
    def XAxisMax(self) -> float: ...
    @XAxisMax.setter
    def XAxisMax(self, value: float) -> None: ...
    @property
    def XAxisMaxAuto(self) -> bool: ...
    @XAxisMaxAuto.setter
    def XAxisMaxAuto(self, value: bool) -> None: ...
    @property
    def XAxisSymmetric(self) -> bool: ...
    @XAxisSymmetric.setter
    def XAxisSymmetric(self, value: bool) -> None: ...
    @property
    def YAxisMin(self) -> float: ...
    @YAxisMin.setter
    def YAxisMin(self, value: float) -> None: ...
    @property
    def YAxisMinAuto(self) -> bool: ...
    @YAxisMinAuto.setter
    def YAxisMinAuto(self, value: bool) -> None: ...
    @property
    def YAxisMax(self) -> float: ...
    @YAxisMax.setter
    def YAxisMax(self, value: float) -> None: ...
    @property
    def YAxisMaxAuto(self) -> bool: ...
    @YAxisMaxAuto.setter
    def YAxisMaxAuto(self, value: bool) -> None: ...
    @property
    def YAxisSymmetric(self) -> bool: ...
    @YAxisSymmetric.setter
    def YAxisSymmetric(self, value: bool) -> None: ...
    @property
    def ZAxisMin(self) -> float: ...
    @ZAxisMin.setter
    def ZAxisMin(self, value: float) -> None: ...
    @property
    def ZAxisMinAuto(self) -> bool: ...
    @ZAxisMinAuto.setter
    def ZAxisMinAuto(self, value: bool) -> None: ...
    @property
    def ZAxisMax(self) -> float: ...
    @ZAxisMax.setter
    def ZAxisMax(self, value: float) -> None: ...
    @property
    def ZAxisMaxAuto(self) -> bool: ...
    @ZAxisMaxAuto.setter
    def ZAxisMaxAuto(self, value: bool) -> None: ...
    @property
    def ZAxisLog(self) -> bool: ...
    @ZAxisLog.setter
    def ZAxisLog(self, value: bool) -> None: ...
    @property
    def LogColorMap(self) -> bool: ...
    @LogColorMap.setter
    def LogColorMap(self, value: bool) -> None: ...
    @property
    def InterpolateLowResolutionContours(self) -> bool: ...
    @InterpolateLowResolutionContours.setter
    def InterpolateLowResolutionContours(self, value: bool) -> None: ...
    @property
    def XYAspectRatio(self) -> float: ...
    @XYAspectRatio.setter
    def XYAspectRatio(self, value: float) -> None: ...
    def SetData(
        self, totalSize: int, numXValues: int, numYValues: int, Data: list[float]
    ) -> None: ...
    def SetDataSafe(self, Data: list[list[float]]) -> None: ...
    def SetXDataDimensions(self, xDataMin: float, xDataMax: float) -> None: ...
    def SetYDataDimensions(self, yDataMin: float, yDataMax: float) -> None: ...

class IUserGridRGBData:
    @property
    def PlotDescription(self) -> str: ...
    @property
    def XLabel(self) -> str: ...
    @XLabel.setter
    def XLabel(self, value: str) -> None: ...
    @property
    def YLabel(self) -> str: ...
    @YLabel.setter
    def YLabel(self, value: str) -> None: ...
    @property
    def ValueLabel(self) -> str: ...
    @ValueLabel.setter
    def ValueLabel(self, value: str) -> None: ...
    @property
    def NumberOfXDataValues(self) -> int: ...
    @property
    def XDataMin(self) -> float: ...
    @property
    def XDataMax(self) -> float: ...
    @property
    def DataDX(self) -> float: ...
    @property
    def NumberOfYDataValues(self) -> int: ...
    @property
    def YDataMin(self) -> float: ...
    @property
    def YDataMax(self) -> float: ...
    @property
    def DataDY(self) -> float: ...
    @property
    def XAxisMin(self) -> float: ...
    @XAxisMin.setter
    def XAxisMin(self, value: float) -> None: ...
    @property
    def XAxisMinAuto(self) -> bool: ...
    @XAxisMinAuto.setter
    def XAxisMinAuto(self, value: bool) -> None: ...
    @property
    def XAxisMax(self) -> float: ...
    @XAxisMax.setter
    def XAxisMax(self, value: float) -> None: ...
    @property
    def XAxisMaxAuto(self) -> bool: ...
    @XAxisMaxAuto.setter
    def XAxisMaxAuto(self, value: bool) -> None: ...
    @property
    def XAxisSymmetric(self) -> bool: ...
    @XAxisSymmetric.setter
    def XAxisSymmetric(self, value: bool) -> None: ...
    @property
    def YAxisMin(self) -> float: ...
    @YAxisMin.setter
    def YAxisMin(self, value: float) -> None: ...
    @property
    def YAxisMinAuto(self) -> bool: ...
    @YAxisMinAuto.setter
    def YAxisMinAuto(self, value: bool) -> None: ...
    @property
    def YAxisMax(self) -> float: ...
    @YAxisMax.setter
    def YAxisMax(self, value: float) -> None: ...
    @property
    def YAxisMaxAuto(self) -> bool: ...
    @YAxisMaxAuto.setter
    def YAxisMaxAuto(self, value: bool) -> None: ...
    @property
    def YAxisSymmetric(self) -> bool: ...
    @YAxisSymmetric.setter
    def YAxisSymmetric(self, value: bool) -> None: ...
    @property
    def XYAspectRatio(self) -> float: ...
    @XYAspectRatio.setter
    def XYAspectRatio(self, value: float) -> None: ...
    def SetData(
        self, fullSize: int, numXValues: int, numYValues: int, rgbData: list[float]
    ) -> None: ...
    def SetDataRGB(
        self,
        fullSize: int,
        numXValues: int,
        numYValues: int,
        rData: list[float],
        gData: list[float],
        bData: list[float],
    ) -> None: ...
    def SetDataRGBSafe(
        self,
        rData: list[list[float]],
        gData: list[list[float]],
        bData: list[list[float]],
    ) -> None: ...
    def SetDataSafe(self, rgbData: list[list[list[float]]]) -> None: ...
    def SetXDataDimensions(self, xDataMin: float, xDataMax: float) -> None: ...
    def SetYDataDimensions(self, yDataMin: float, yDataMax: float) -> None: ...

class IUserTextData:
    @property
    def Data(self) -> str: ...
    @Data.setter
    def Data(self, value: str) -> None: ...

# POPSampling is imported as constant

# RemoveOptions is imported as constant

# SampleSizes is imported as constant

# SampleSizes_ContrastLoss is imported as constant

# SampleSizes_Pow2Plus1 is imported as constant

# SampleSizes_Pow2Plus1_X is imported as constant

# ShowAs is imported as constant

# SurfaceCurvatureCrossData is imported as constant

# SurfaceCurvatureData is imported as constant

# SurfacePhaseData is imported as constant

# SurfacePhaseSlopeCrossData is imported as constant

# SurfacePhaseSlopeData is imported as constant

# SurfaceSagData is imported as constant

# SurfaceSlopeCrossData is imported as constant

# SurfaceSlopeData is imported as constant

# UserAnalysisDataType is imported as constant
