/** A dense numeric feature matrix, indexed as [sample][feature]. */ export type DenseMatrix = number[][]; /** Numeric input accepted by sparse-aware estimators. */ export type NumericMatrix = DenseMatrix | CSRMatrix; /** Raw text documents accepted by text transformers. */ export type TextDocuments = string[]; /** Data that may flow between Pipeline steps. */ export type FeatureData = NumericMatrix | TextDocuments; export type FeatureDataKind = 'dense' | 'csr' | 'text'; /** * Minimal compressed-sparse-row matrix for browser and Node.js workloads. * * The three backing arrays use the conventional CSR layout: values and their * column indices are grouped by row, while indptr stores the start offset for * every row (plus one final sentinel). Zero values are not stored. */ export declare class CSRMatrix { private dataState; private indicesState; private indptrState; readonly nRows: number; readonly nCols: number; constructor(data: number[], indices: number[], indptr: number[], shape: [number, number]); get shape(): [number, number]; get nnz(): number; /** Defensive copies keep callers from invalidating the CSR layout. */ get data(): readonly number[]; get indices(): readonly number[]; get indptr(): readonly number[]; static fromDense(matrix: DenseMatrix): CSRMatrix; get(row: number, column: number): number; row(row: number): number[]; forEachNonZeroInRow(row: number, callback: (column: number, value: number) => void): void; selectRows(rows: number[]): CSRMatrix; toDense(): DenseMatrix; private assertRow; } export declare function isCSRMatrix(value: unknown): value is CSRMatrix; export declare function matrixShape(X: NumericMatrix): [number, number]; export declare function matrixRow(X: NumericMatrix, row: number): number[]; export declare function forEachNonZeroInRow(X: NumericMatrix, row: number, callback: (column: number, value: number) => void): void;