import type { _NSCopying } from "../Foundation/NSCopying.js";
import type { _NSNumber } from "../Foundation/NSNumber.js";
import type { _NSObject } from "../Foundation/NSObject.js";
export declare class _MLCEmbeddingDescriptor extends _NSObject {
    static alloc(): _MLCEmbeddingDescriptor;
    static new(): _MLCEmbeddingDescriptor;
    init(): _MLCEmbeddingDescriptor;
    static descriptorWithEmbeddingCount$embeddingDimension$(embeddingCount: _NSNumber, embeddingDimension: _NSNumber): _MLCEmbeddingDescriptor | null;
    static descriptorWithEmbeddingCount$embeddingDimension$paddingIndex$maximumNorm$pNorm$scalesGradientByFrequency$(embeddingCount: _NSNumber, embeddingDimension: _NSNumber, paddingIndex: _NSNumber | null, maximumNorm: _NSNumber | null, pNorm: _NSNumber | null, scalesGradientByFrequency: boolean): _MLCEmbeddingDescriptor | null;
    /** @property embeddingCount @abstract The size of the dictionary */
    embeddingCount(): _NSNumber;
    /** @property embeddingDimension @abstract The dimension of embedding vectors */
    embeddingDimension(): _NSNumber;
    /**
     * @property paddingIndex @abstract If set, the embedding vector at paddingIndex is initialized with zero and will not be updated in gradient pass, Default=nil
     */
    paddingIndex(): _NSNumber;
    /**
     * @property maximumNorm @abstract A float, if set, in the forward pass only, the selected embedding vectors will be re-normalized to have an Lp norm of less than maximumNorm in the dictionary, Default=nil
     */
    maximumNorm(): _NSNumber;
    /**
     * @property pNorm @abstract A float, the p of the Lp norm, can be set to infinity norm by [NSNumber numberWithFloat:INFINITY]. Default=2.0
     */
    pNorm(): _NSNumber;
    /**
     * @property scalesGradientByFrequency @abstract If set, the gradients are scaled by the inverse of the frequency of the words in batch before the weight update. Default=NO
     */
    scalesGradientByFrequency(): boolean;
}
export interface _MLCEmbeddingDescriptor extends _NSCopying {
}
