import type { _MLCLayer } from "./MLCLayer.js";
import type { _MLCTensor } from "./MLCTensor.js";
import type { _MLCTensorParameter } from "./MLCTensorParameter.js";
export declare class _MLCGroupNormalizationLayer extends _MLCLayer {
    static alloc(): _MLCGroupNormalizationLayer;
    static new(): _MLCGroupNormalizationLayer;
    init(): _MLCGroupNormalizationLayer;
    /**
     * @abstract Create a group normalization layer @param featureChannelCount The number of feature channels @param beta Training parameter @param gamma Training parameter @param groupCount The number of groups to divide the feature channels into @param varianceEpsilon A small numerical value added to variance for stability @return A new group normalization layer.
     */
    static layerWithFeatureChannelCount$groupCount$beta$gamma$varianceEpsilon$(featureChannelCount: number, groupCount: number, beta: _MLCTensor | null, gamma: _MLCTensor | null, varianceEpsilon: number): _MLCGroupNormalizationLayer | null;
    /** @property featureChannelCount @abstract The number of feature channels */
    featureChannelCount(): number;
    /**
     * @property groupCount @abstract The number of groups to separate the channels into
     */
    groupCount(): number;
    /** @property beta @abstract The beta tensor */
    beta(): _MLCTensor | null;
    /** @property gamma @abstract The gamma tensor */
    gamma(): _MLCTensor | null;
    /**
     * @property betaParameter @abstract The beta tensor parameter used for optimizer update
     */
    betaParameter(): _MLCTensorParameter | null;
    /**
     * @property gammaParameter @abstract The gamma tensor parameter used for optimizer update
     */
    gammaParameter(): _MLCTensorParameter | null;
    /** @property varianceEpsilon @abstract A value used for numerical stability */
    varianceEpsilon(): number;
}
