import { TransformerBase } from '../base'; import { Params } from '../base/estimator'; export type ProjectionComponents = number | 'auto'; interface BaseProps { nComponents?: ProjectionComponents; eps?: number; computeInverseComponents?: boolean; randomState?: number; } declare abstract class BaseRandomProjection extends TransformerBase { protected nComponents: ProjectionComponents; protected eps: number; protected computeInverseComponents: boolean; protected randomState?: number; protected componentsState: number[][]; protected inverseState: number[][]; protected nFeaturesState: number; constructor(props?: BaseProps); getParams(): Params; protected abstract generate(rows: number, columns: number, random: () => number): number[][]; fit(X: number[][]): void; transform(X: number[][]): number[][]; inverseTransform(X: number[][]): number[][]; get components(): number[][]; } export interface GaussianRandomProjectionProps extends BaseProps { } export declare class GaussianRandomProjection extends BaseRandomProjection { protected generate(rows: number, columns: number, random: () => number): number[][]; } export interface SparseRandomProjectionProps extends BaseProps { density?: number | 'auto'; denseOutput?: boolean; } export declare class SparseRandomProjection extends BaseRandomProjection { private density; private denseOutput; constructor(props?: SparseRandomProjectionProps); getParams(): Params; protected generate(rows: number, columns: number, random: () => number): number[][]; } export {};