@bespunky/angular-zen
Version:
The Angular tools you always wished were there.
36 lines (35 loc) • 1.61 kB
TypeScript
import { FactoryProvider, Provider } from '@angular/core';
import { UrlLocalizationConfig } from '../url-localization/config/url-localization-config';
import { LanguageIntegrationConfig } from './language-integration-config';
/** Represents a factory that receives dependencies and produces the language integration configuration for an app. */
export declare type LanguageIntegrationConfigFactory = (...deps: any[]) => LanguageIntegrationConfig;
/**
* A strongly-typed factory provider for providing language integration config.
*
* @export
* @interface LanguageIntegrationProvider
* @extends {(Omit<FactoryProvider, 'provide' | 'multi'>)}
*/
export interface LanguageIntegrationProvider extends Omit<FactoryProvider, 'provide' | 'multi'> {
/**
* The factory to use for creating the language integration configuration.
*
* @type {LanguageIntegrationConfigFactory}
*/
useFactory: LanguageIntegrationConfigFactory;
/**
* (Optional) The configuration for the `UrlLocalizationService`.
*
* @type {UrlLocalizationConfig}
*/
urlLocalization?: UrlLocalizationConfig;
}
/**
* Generates language integration tokens and services to be provided in a module.
* Used by `LanguageIntegrationModule.forRoot()`.
*
* @export
* @param {LanguageIntegrationProvider} { useFactory, deps, urlLocalization } The language integration provider configuration.
* @returns {Provider[]} An array of providers for language integration.
*/
export declare function provideLanguageIntegration({ useFactory, deps, urlLocalization }: LanguageIntegrationProvider): Provider[];