import type { _MPSGraphObject } from "./MPSGraphObject.js";
import type { _NSCopying } from "../Foundation/NSCopying.js";
import type { MPSGraphRNNActivation } from "./MPSGraphRNNActivation.js";
export declare class _MPSGraphLSTMDescriptor extends _MPSGraphObject {
    static alloc(): _MPSGraphLSTMDescriptor;
    static new(): _MPSGraphLSTMDescriptor;
    init(): _MPSGraphLSTMDescriptor;
    /** Creates an LSTM descriptor with default values. */
    static descriptor(): _MPSGraphLSTMDescriptor | null;
    /**
     * A parameter that defines time direction of the input sequence. If set to `YES` then the input sequence is passed in reverse time order to the layer. Note: Ignored when `bidirectional = YES`. Default value: `NO`.
     */
    reverse(): boolean;
    setReverse$(value: boolean): void;
    /**
     * A parameter that defines a bidirectional LSTM layer. If set to `YES` then the input sequence is traversed in both directions and the two results are concatenated together on the channel-axis. Default value: `NO`.
     */
    bidirectional(): boolean;
    setBidirectional$(value: boolean): void;
    /**
     * A parameter that controls whether or not to return the output cell from the LSTM layer. If set to `YES` then this layer will produce the internal cell of the LSTM unit as secondary output. Default value: `NO`.
     */
    produceCell(): boolean;
    setProduceCell$(value: boolean): void;
    /**
     * A parameter that enables the LSTM layer to support training. If set to `YES` then the layer will produce training state tensor as a secondary output. Default value: `NO`.
     */
    training(): boolean;
    setTraining$(value: boolean): void;
    /**
     * A parameter that controls the internal order of the LSTM gates. If set to `YES` then the layer will use the gate-ordering `[ i, z, f, o ]` instead of default `[ i, f, z, o ]`. Default value: `NO`
     */
    forgetGateLast(): boolean;
    setForgetGateLast$(value: boolean): void;
    /**
     * A parameter that defines the activation function used with the input gate of the LSTM operation. Default value: `MPSGraphRNNActivationSigmoid`.
     */
    inputGateActivation(): MPSGraphRNNActivation;
    setInputGateActivation$(value: MPSGraphRNNActivation): void;
    /**
     * A parameter that defines the activation function used with the forget gate of the LSTM operation. Default value: `MPSGraphRNNActivationSigmoid`.
     */
    forgetGateActivation(): MPSGraphRNNActivation;
    setForgetGateActivation$(value: MPSGraphRNNActivation): void;
    /**
     * A parameter that defines the activation function used with the cell gate of the LSTM operation. Default value: `MPSGraphRNNActivationTanh`.
     */
    cellGateActivation(): MPSGraphRNNActivation;
    setCellGateActivation$(value: MPSGraphRNNActivation): void;
    /**
     * A parameter that defines the activation function used with the output gate of the LSTM operation. Default value: `MPSGraphRNNActivationSigmoid`.
     */
    outputGateActivation(): MPSGraphRNNActivation;
    setOutputGateActivation$(value: MPSGraphRNNActivation): void;
    /**
     * A parameter that defines the activation function used with the current cell value of the LSTM operation. Default value: `MPSGraphRNNActivationTanh`.
     */
    activation(): MPSGraphRNNActivation;
    setActivation$(value: MPSGraphRNNActivation): void;
}
export interface _MPSGraphLSTMDescriptor extends _NSCopying {
}
