/**
 * @module botbuilder-dialogs-adaptive
 */
/**
 * Copyright (c) Microsoft Corporation. All rights reserved.
 * Licensed under the MIT License.
 */
import { Configurable, Converter, ConverterFactory, DialogContext } from 'botbuilder-dialogs';
import { LanguageGenerator } from '../languageGenerator';
import { LanguagePolicy } from '../languagePolicy';
export interface MultiLanguageGeneratorBaseConfiguration {
    languagePolicy?: Record<string, string[]> | LanguagePolicy;
}
/**
 * Base class which applies language policy to tryGetGenerator.
 */
export declare abstract class MultiLanguageGeneratorBase<T = unknown, D extends Record<string, unknown> = Record<string, unknown>> extends Configurable implements LanguageGenerator<T, D>, MultiLanguageGeneratorBaseConfiguration {
    /**
     * Language policy required by language generator.
     */
    languagePolicy: LanguagePolicy;
    /**
     * @param property The key of the conditional selector configuration.
     * @returns The converter for the selector configuration.
     */
    getConverter(property: keyof MultiLanguageGeneratorBaseConfiguration): Converter | ConverterFactory;
    /**
     * Abstract method to get a language generator by locale.
     *
     * @param dialogContext DialogContext.
     * @param locale Locale to lookup.
     */
    abstract tryGetGenerator(dialogContext: DialogContext, locale: string): {
        exist: boolean;
        result: LanguageGenerator<T, D>;
    };
    /**
     * Find a language generator that matches the current context locale.
     *
     * @param dialogContext Context for the current turn of conversation.
     * @param template Template to use.
     * @param data Data to bind to.
     * @returns A promise representing the asynchronous operation.
     */
    generate(dialogContext: DialogContext, template: string, data: D): Promise<T>;
}
//# sourceMappingURL=multiLanguageGeneratorBase.d.ts.map
