import type { BaseEstimator } from './estimator'; export type Coefficients = number[] | number[][]; export type EstimatorCapability = 'coef' | 'featureImportances'; export interface CoefficientCapability { /** Fitted input-feature coefficients. A copy is returned to protect model state. */ readonly coef: Coefficients; } export interface FeatureImportanceCapability { /** Normalized non-negative input-feature importances. */ readonly featureImportances: number[]; } /** * Capability declaration is structural: an estimator opts in by defining the * named public property/getter. BaseEstimator intentionally does not provide * placeholders, so unsupported estimators (for example kernel SVMs) remain * distinguishable from supported-but-unfitted estimators. */ export declare function declaresEstimatorCapability(estimator: BaseEstimator, capability: EstimatorCapability): boolean; export declare function hasCoefficientCapability(estimator: BaseEstimator): estimator is BaseEstimator & CoefficientCapability; export declare function hasFeatureImportanceCapability(estimator: BaseEstimator): estimator is BaseEstimator & FeatureImportanceCapability; /** Flatten one- or two-dimensional coefficients into one importance per input feature. */ export declare function coefficientImportances(coef: Coefficients): number[];