import type { _NSCopying } from "../Foundation/NSCopying.js";
import type { _NSObject } from "../Foundation/NSObject.js";
import type { MLCGradientClippingType } from "./MLCGradientClippingType.js";
import type { MLCRegularizationType } from "./MLCRegularizationType.js";
export declare class _MLCOptimizer extends _NSObject {
    static alloc(): _MLCOptimizer;
    static new(): _MLCOptimizer;
    init(): _MLCOptimizer;
    /**
     * @property learningRate @abstract The learning rate. This property is 'readwrite' so that callers can implement a 'decay' during training
     */
    learningRate(): number;
    setLearningRate$(value: number): void;
    /**
     * @property gradientRescale @abstract The rescale value applied to gradients during optimizer update
     */
    gradientRescale(): number;
    /**
     * @property appliesGradientClipping @abstract Whether gradient clipping should be applied or not.
     */
    appliesGradientClipping(): boolean;
    setAppliesGradientClipping$(value: boolean): void;
    /**
     * @property gradientClipMax @abstract The maximum gradient value if gradient clipping is enabled before gradient is rescaled.
     */
    gradientClipMax(): number;
    /**
     * @property gradientClipMin @abstract The minimum gradient value if gradient clipping is enabled before gradient is rescaled.
     */
    gradientClipMin(): number;
    /** @property regularizationScale @abstract The regularization scale. */
    regularizationScale(): number;
    /** @property regularizationType @abstract The regularization type. */
    regularizationType(): MLCRegularizationType;
    /**
     * @property gradientClippingType @abstract The type of clipping applied to gradient
     */
    gradientClippingType(): MLCGradientClippingType;
    /** @property maximumClippingNorm @abstract The maximum clipping value */
    maximumClippingNorm(): number;
    /**
     * @property customGlobalNorm @abstract Used only with MLCGradientClippingTypeByGlobalNorm. If non zero, this norm will be used in place of global norm.
     */
    customGlobalNorm(): number;
}
export interface _MLCOptimizer extends _NSCopying {
}
