import * as Tp from 'thingpedia';
import { Ast, SchemaRetriever } from 'thingtalk';
import ValueCategory from './value-category';
import { EntityMap } from '../utils/entity-utils';
interface DialoguePolicyOptions {
    thingpedia: Tp.BaseClient;
    schemas: SchemaRetriever;
    locale: string;
    timezone: string | undefined;
    rng: () => number;
    debug: boolean;
}
export default class DialoguePolicy {
    private _thingpedia;
    private _schemas;
    private _locale;
    private _timezone;
    private _langPack;
    private _rng;
    private _debug;
    private _sentenceGenerator;
    private _generatorDevices;
    private _generatorOptions;
    private _entityAllocator;
    constructor(options: DialoguePolicyOptions);
    private _initializeGenerator;
    private _extractDevices;
    private _ensureGeneratorForState;
    handleAnswer(state: Ast.DialogueState | null, value: Ast.Value): Promise<Ast.DialogueState | null>;
    private _generateDerivation;
    chooseAction(state: Ast.DialogueState | null): Promise<[Ast.DialogueState, ValueCategory | null, string, EntityMap, number] | undefined>;
}
export {};
