import { LayersModel } from '@tensorflow/tfjs-node';
import { Dataset } from '../../dataset/dataset';
import { WordEmbeddingStorage } from '../../embeddings/types';
import { ModelEvaluation } from '../../model/types';
import { Preprocessor } from '../../preprocess/preprocessor';
import { Locale } from '../../types';
import { Intent } from '../text-classification/process/prediction-processor';
import { TEXT_CLASSIFIER_TEMPLATE, TextClassifierParameters } from './models/types';
export declare class BotonicTextClassifier {
    readonly locale: Locale;
    readonly maxLength: number;
    readonly vocabulary: string[];
    private readonly preprocessor;
    readonly classes: string[];
    private processor;
    private predictionProcessor;
    private modelManager;
    constructor(locale: Locale, maxLength: number, classes: string[], vocabulary: string[], preprocessor: Preprocessor);
    static load(path: string, preprocessor: Preprocessor): Promise<BotonicTextClassifier>;
    compile(): void;
    createModel(template: TEXT_CLASSIFIER_TEMPLATE, storage: WordEmbeddingStorage, params?: TextClassifierParameters): 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>;
}
