import { I18nLoader } from './i18n.loader';
import { I18nTranslation } from '../interfaces';
export interface I18nAbstractFileLoaderOptions {
    path: string;
    includeSubfolders?: boolean;
    filePattern?: string;
}
export declare abstract class I18nAbstractFileLoader extends I18nLoader<I18nAbstractFileLoaderOptions> {
    constructor(options: I18nAbstractFileLoaderOptions);
    languages(): Promise<string[]>;
    load(): Promise<I18nTranslation>;
    abstract formatData<T>(data: T, sourceFileName?: string): unknown;
    abstract getDefaultOptions(): Partial<I18nAbstractFileLoaderOptions>;
    protected parseTranslations(): Promise<I18nTranslation>;
    protected assignPrefixedTranslation(translations: I18nTranslation | string, prefix: string[], property: string, value: unknown): void;
    protected parseLanguages(): Promise<string[]>;
    protected sanitizeOptions(options: I18nAbstractFileLoaderOptions): {
        path: string;
        filePattern: string;
        includeSubfolders?: boolean | undefined;
    };
}
