/// <reference types="node" />
import * as Tp from 'thingpedia';
import stream from 'stream';
interface BasicGeneratorOptions {
    targetPruningSize: number;
    maxDepth: number;
    maxConstants?: number;
    idPrefix?: string;
    locale: string;
    timezone: string | undefined;
    templateFiles: string[];
    flags: {
        [key: string]: boolean;
    };
    debug: number;
    rng: () => number;
    thingpediaClient: Tp.BaseClient;
    onlyDevices?: string[];
    whiteList?: string;
}
/**
 * Generate a dataset of single-sentence commands and their associated logical forms.
 */
declare class BasicSentenceGenerator extends stream.Readable {
    private _idPrefix;
    private _locale;
    private _langPack;
    private _rng;
    private _generator;
    private _initialization;
    private _i;
    constructor(options: BasicGeneratorOptions);
    _read(): void;
    private _postprocessSentence;
    private _output;
}
interface SimulationDatabase {
    has(key: string): boolean;
    get(key: string): Array<{
        [key: string]: unknown;
    }> | undefined;
}
interface DialogueGeneratorOptions {
    locale: string;
    timezone: string | undefined;
    minibatchSize: number;
    numMinibatches: number;
    idPrefix?: string;
    debug: number;
    rng: () => number;
    policyFile?: string;
    templateFiles: string[];
    flags: {
        [key: string]: boolean;
    };
    maxConstants?: number;
    targetPruningSize: number;
    maxTurns: number;
    maxDepth: number;
    thingpediaClient: Tp.BaseClient;
    database?: SimulationDatabase;
    onlyDevices?: string[];
    whiteList?: string;
}
/**
 * Generate a dataset of multi-turn dialogues.
 */
declare class DialogueGenerator extends stream.Readable {
    private _i;
    private _numMinibatches;
    private _options;
    private _idPrefix;
    private _debug;
    private _langPack;
    private _agentGenerator;
    private _userGenerator;
    private _stateValidator;
    private _simulator;
    private _initialized;
    private _minibatchIdx;
    constructor(options: DialogueGeneratorOptions);
    private _generateMinibatch;
    _read(): void;
}
export { BasicSentenceGenerator, DialogueGenerator };
