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 { NER_TEMPLATE, NerModelParameters } from './models/types';
import { Entity } from './process/types';
export declare class BotonicNer {
    readonly locale: Locale;
    readonly maxLength: number;
    readonly vocabulary: string[];
    private readonly preprocessor;
    readonly entities: string[];
    private processor;
    private predictionProcessor;
    private modelManager;
    constructor(locale: Locale, maxLength: number, entities: string[], vocabulary: string[], preprocessor: Preprocessor);
    static load(path: string, preprocessor: Preprocessor): Promise<BotonicNer>;
    compile(): void;
    createModel(template: NER_TEMPLATE, storage: WordEmbeddingStorage, params?: NerModelParameters): Promise<LayersModel>;
    setModel(model: LayersModel): void;
    train(dataset: Dataset, epochs: number, batchSize: number): Promise<void>;
    evaluate(dataset: Dataset): Promise<ModelEvaluation>;
    recognizeEntities(text: string): Entity[];
    saveModel(path: string): Promise<void>;
}
