export interface DeepELMProOptions {
    layers: number[];
    activation?: 'relu' | 'tanh' | 'sigmoid' | 'linear';
    useDropout?: boolean;
    dropoutRate?: number;
    useBatchNorm?: boolean;
    regularization?: {
        type: 'l1' | 'l2' | 'elastic';
        lambda?: number;
        alpha?: number;
    };
    layerWiseTraining?: boolean;
    pretraining?: boolean;
    categories: string[];
    maxLen?: number;
}
export interface DeepELMProResult {
    label: string;
    prob: number;
}
/**
 * Improved Deep ELM with advanced training strategies
 * Features:
 * - Layer-wise training with autoencoder pretraining
 * - Dropout and batch normalization
 * - L1/L2/Elastic net regularization
 * - Better initialization strategies
 */
export declare class DeepELMPro {
    private layers;
    private options;
    private trained;
    private featureExtractors;
    constructor(options: DeepELMProOptions);
    /**
     * Train the deep ELM with improved strategies
     */
    train(X: number[][], y: number[]): Promise<void>;
    /**
     * Predict with deep ELM
     */
    predict(X: number[] | number[][], topK?: number): DeepELMProResult[];
    /**
     * Pretrain layers as autoencoders
     */
    private _pretrain;
    /**
     * Train layers sequentially
     */
    private _trainLayerWise;
    /**
     * Train all layers jointly
     */
    private _trainJoint;
    private _extractFeatures;
    private _extractFeaturesFromELM;
    private _batchNormalize;
}
//# sourceMappingURL=deep-elm-pro.d.ts.map