import { ClassificationCriterion, RegressionCriterion, ImpurityMeasure } from './Criterion'; import { int } from '../randUtils'; import { Serialize } from '../simpleSerializer'; export interface Split { feature: int; threshold: int; pos: int; impurityLeft: number; impurityRight: number; foundSplit: boolean; } export declare function makeDefaultSplit(): { feature: number; threshold: number; pos: number; impurityLeft: number; impurityRight: number; foundSplit: boolean; }; export declare class Splitter extends Serialize { kMinSplitDiff: number; X: number[][]; y: int[]; criterion: ClassificationCriterion | RegressionCriterion; start: int; end: int; minSamplesLeaf: int; maxFeatures: int; featureOrder: int[]; shuffleFeatures: boolean; sampleMap: Int32Array; nSamplesTotal: int; nFeatures: int; name: string; constructor({ X, y, minSamplesLeaf, impurityMeasure, maxFeatures, samplesSubset }: { X: number[][]; y: int[]; minSamplesLeaf: int; impurityMeasure: ImpurityMeasure; maxFeatures: int; samplesSubset: int[]; }); resetSampleRange(start: int, end: int): void; splitNode(): Split; }