import { TranslationEngine } from '../translation-engine/translation-engine';
import { SentenceFormat } from './sentence-format';
import { TranslationOptions } from './translation-options';
export declare abstract class AbstractTranslator<T> {
    protected readonly engine: TranslationEngine;
    constructor(engine: TranslationEngine);
    setup(): Promise<void>;
    tearDown(): Promise<void>;
    translateFile(filename: string, options?: TranslationOptions): Promise<void>;
    translateContent(content: string, options?: TranslationOptions): Promise<string>;
    flush(): Promise<void>;
    abstract parse(text: string, options: TranslationOptions): T;
    protected translateSentence(sentence: string, format: SentenceFormat): Promise<string>;
    protected abstract translateDoc(doc: T, options: TranslationOptions): T;
    abstract serialize(doc: T, options: TranslationOptions): string;
}
