import { int } from '../randUtils'; import { Serialize } from '../simpleSerializer'; export declare type ImpurityMeasure = 'gini' | 'entropy' | 'squared_error'; export declare function giniCoefficient(labelFreqs: int[], nSamples: int): number; export declare function entropy(labelFreqs: int[], nSamples: int): number; export declare function mse(ySquaredSum: number, ySum: number, nSamples: int): number; export declare class ClassificationCriterion extends Serialize { y: int[]; impurityMeasure: ImpurityMeasure; start: int; end: int; pos: int; nLabels: int; labelFreqsTotal: int[]; labelFreqsLeft: int[]; labelFreqsRight: int[]; nSamples: int; nSamplesLeft: int; nSamplesRight: int; name: string; constructor({ impurityMeasure, y }: { impurityMeasure: ImpurityMeasure; y: number[]; }); init(start: int, end: int, sampleMap: Int32Array): void; reset(): void; update(newPos: int, sampleMap: Int32Array): void; childrenImpurities(): { impurityLeft: number; impurityRight: number; }; impurityImprovement(): number; nodeImpurity(): number; nodeValue(): number[]; static fromJson(model: string): any; } export declare class RegressionCriterion extends Serialize { y: number[]; impurityMeasure: 'squared_error'; start: int; end: int; pos: int; squaredSum: number; squaredSumLeft: number; squaredSumRight: number; sumTotal: number; sumTotalLeft: number; sumTotalRight: number; nSamples: int; nSamplesLeft: int; nSamplesRight: int; name: string; constructor({ impurityMeasure, y }: { impurityMeasure: 'squared_error'; y: number[]; }); init(start: int, end: int, sampleMap: Int32Array): void; reset(): void; update(newPos: int, sampleMap: Int32Array): void; childrenImpurities(): { impurityLeft: number; impurityRight: number; }; impurityImprovement(): number; nodeImpurity(): number; nodeValue(): number[]; static fromJson(model: string): any; }