import { LayersModel } from '@tensorflow/tfjs-node';
import { Dataset } from '../../dataset';
import { WordEmbeddingStorage } from '../../embeddings';
import { ModelEvaluation } from '../../model';
import { Preprocessor } from '../../preprocess';
import { ConfigStorage, NlpTaskConfig } from '../../storage';
import { INTENT_CLASSIFIER_TEMPLATE, IntentClassifierParameters } from './models';
import { Intent } from './process';
export interface IntentClassifierConfig extends NlpTaskConfig {
    intents: string[];
}
export declare class IntentClassifierConfigStorage extends ConfigStorage<IntentClassifierConfig> {
}
export declare class BotonicIntentClassifier {
    private readonly config;
    private readonly processor;
    private readonly predictionProcessor;
    private modelManager;
    constructor(config: IntentClassifierConfig, preprocessor: Preprocessor);
    static load(path: string, preprocessor: Preprocessor): Promise<BotonicIntentClassifier>;
    createModel(template: INTENT_CLASSIFIER_TEMPLATE, storage: WordEmbeddingStorage, params?: IntentClassifierParameters): Promise<LayersModel>;
    setModel(model: LayersModel): void;
    train(dataset: Dataset, epochs: number, batchSize: number): Promise<void>;
    evaluate(dataset: Dataset): Promise<ModelEvaluation>;
    classify(text: string): Intent[];
    saveModel(path: string): Promise<void>;
}
