/// <reference types="node" />
import Stream from 'stream';
import { SchemaRetriever } from 'thingtalk';
import * as Tp from 'thingpedia';
import { SentenceExample } from '../parsers';
interface DatasetAugmenterOptions {
    locale: string;
    paramLocale: string;
    rng: () => number;
    debug: boolean;
    singleDeviceExpandFactor: number;
    quotedProbability: number;
    untypedStringProbability: number;
    maxSpanLength: number;
    syntheticExpandFactor: number;
    noQuoteExpandFactor: number;
    paraphrasingExpandFactor: number;
    includeQuotedExample: boolean;
    replaceLocations: boolean;
    replaceNumbers: boolean;
    cleanParameters: boolean;
    requotable: boolean;
    samplingType: 'random' | 'uniform' | 'default';
    subsetParamSet: [number, number];
    numAttempts: number;
}
interface ParameterRecord {
    preprocessed: string;
    weight: number;
}
interface ParameterProvider {
    get(type: 'entity' | 'string', key: string): Promise<ParameterRecord[]>;
}
export default class DatasetAugmenter extends Stream.Transform {
    private _options;
    private _rng;
    private _includeQuotedExample;
    private _singledevice;
    private _paramReplacer;
    constructor(schemaRetriever: SchemaRetriever, constProvider: ParameterProvider, thingpediaClient: Tp.BaseClient, options: DatasetAugmenterOptions);
    private _process;
    _flush(callback: () => void): void;
    _transform(inex: SentenceExample, encoding: BufferEncoding, callback: (err?: Error | null) => void): void;
}
export {};
