import type { NobjcObject } from "objc-js";
import type { _MPSGraphObject } from "./MPSGraphObject.js";
import type { _NSCopying } from "../Foundation/NSCopying.js";
import type { MPSGraphRandomDistribution } from "./MPSGraphRandomDistribution.js";
import type { MPSGraphRandomNormalSamplingMethod } from "./MPSGraphRandomNormalSamplingMethod.js";
export declare class _MPSGraphRandomOpDescriptor extends _MPSGraphObject {
    static alloc(): _MPSGraphRandomOpDescriptor;
    static new(): _MPSGraphRandomOpDescriptor;
    init(): _MPSGraphRandomOpDescriptor;
    /** Class method to initialize a distribution descriptor. */
    static descriptorWithDistribution$dataType$(distribution: MPSGraphRandomDistribution, dataType: NobjcObject): _MPSGraphRandomOpDescriptor | null;
    /** The type of distribution to draw samples from. See MPSGraphRandomDistribution. */
    distribution(): MPSGraphRandomDistribution;
    setDistribution$(value: MPSGraphRandomDistribution): void;
    /**
     * The data type of the generated result values. When sampling from the uniform distribution, valid types are MPSDataTypeFloat16, MPSDataTypeFloat32, and MPSDataTypeInt32. When sampling from the normal or truncated normal distribution, valid types are MPSDataTypeFloat16 and MPSDataTypeFloat32.
     */
    dataType(): NobjcObject;
    setDataType$(value: NobjcObject): void;
    /**
     * The lower range of the distribution. This value is used for Uniform distributions with float data types and Truncated Normal disributions. Defaults to 0 for uniform distributions and -2 for normal distributions.
     */
    min(): number;
    setMin$(value: number): void;
    /**
     * The upper range of the distribution. This value is used for Uniform distributions with float data types and Truncated Normal disributions. Defaults to 1 for uniform distributions and 2 for normal distributions.
     */
    max(): number;
    setMax$(value: number): void;
    /**
     * The lower range of the distribution. This value is used for Uniform with integer data types Defaults to 0.
     */
    minInteger(): number;
    setMinInteger$(value: number): void;
    /**
     * The upper range of the distribution. This value is used for Uniform with integer data types Defaults to INT32_MAX for uniform distributions and 0 for normal distributions.
     */
    maxInteger(): number;
    setMaxInteger$(value: number): void;
    /**
     * The mean of the distribution. This value is used for Normal and Truncated Normal disributions. Defaults to 0.
     */
    mean(): number;
    setMean$(value: number): void;
    /**
     * The standard deviation of the distribution. This value is used for Normal and Truncated Normal disributions. For Truncated Normal distribution this defines the standard deviation parameter of the underlying Normal distribution, that is the width of the Gaussian, not the true standard deviation of the truncated distribution which typically differs from the standard deviation of the original Normal distribution. Defaults to 0 for uniform distributions and 1 for normal distributions.
     */
    standardDeviation(): number;
    setStandardDeviation$(value: number): void;
    /**
     * The sampling method of the distribution. This value is used for Normal and Truncated Normal disributions. See MPSGraphRandomNormalSamplingMethod. Defaults to MPSGraphRandomNormalSamplingInvCDF.
     */
    samplingMethod(): MPSGraphRandomNormalSamplingMethod;
    setSamplingMethod$(value: MPSGraphRandomNormalSamplingMethod): void;
}
export interface _MPSGraphRandomOpDescriptor extends _NSCopying {
}
