///
import * as child_process from 'child_process';
import * as events from 'events';
export interface TrainingJobOptions {
id: string;
datadir: string;
workdir: string;
outputdir?: string;
debug?: boolean;
config?: Record;
}
export declare abstract class BaseTrainingJob extends events.EventEmitter {
private _datadir;
private _workdir;
private _outputdir;
private _debug;
private _progress;
protected _killed: boolean;
id: string;
child: child_process.ChildProcess | null;
metrics: Record;
constructor(options: TrainingJobOptions);
get datadir(): string;
get workdir(): string;
get outputdir(): string | null;
get debug(): boolean;
abstract train(): Promise;
get progress(): number;
set progress(value: number);
kill(): void;
}