import { DynamicModule, NestModule, OnModuleDestroy, OnModuleInit } from '@nestjs/common';
import { HttpAdapterHost } from '@nestjs/core';
import { Observable } from 'rxjs';
import { NestMiddlewareConsumer } from './interfaces';
import { I18nAsyncOptions, I18nOptions } from './interfaces/i18n-options.interface';
import { I18nTranslation } from './interfaces/i18n-translation.interface';
import { I18nMiddleware } from './middlewares/i18n.middleware';
import { I18nService } from './services/i18n.service';
export declare class I18nModule implements OnModuleInit, OnModuleDestroy, NestModule {
    private readonly i18n;
    private translations;
    private readonly i18nOptions;
    private adapter;
    private readonly middleware;
    private unsubscribe;
    constructor(i18n: I18nService, translations: Observable<I18nTranslation>, i18nOptions: I18nOptions, adapter: HttpAdapterHost, middleware: I18nMiddleware);
    onModuleInit(): Promise<void>;
    onModuleDestroy(): void;
    configure(consumer: NestMiddlewareConsumer): void;
    static forRoot(options: I18nOptions): DynamicModule;
    static forRootAsync(options: I18nAsyncOptions): DynamicModule;
    private static createAsyncOptionsProvider;
    private static createAsyncLoaderOptionsProvider;
    private static createAsyncLoadersProvider;
    private static createAsyncTranslationProvider;
    private static createAsyncLanguagesProvider;
    private static createMultiLoaderStreamProvider;
    private static createLoaderStreamProvider;
    private static sanitizeI18nOptions;
    private static createResolverProviders;
}
