import * as _angular_core from '@angular/core'; import { Type, InjectionToken, OnDestroy, OnInit, TemplateRef, ModuleWithProviders, EnvironmentProviders } from '@angular/core'; import * as _angular_extensions_elements_src_lib_lazy_elements from '@angular-extensions/elements/src/lib/lazy-elements'; type Hook = (tag: string) => Promise | void; interface HooksConfig { beforeLoad?: Hook; afterLoad?: Hook; } interface ElementConfig { tag: string; url: string; isModule?: boolean; importMap?: boolean; loadingComponent?: Type; errorComponent?: Type; preload?: boolean; hooks?: HooksConfig; isAdded?: boolean; } interface LazyElementsRegistry extends Map> { get: (url: string) => Promise | undefined; set: (url: string, notifier: Promise) => this; has: (url: string) => boolean; } interface LazyElementModuleOptions { elementConfigs?: ElementConfig[]; } interface LazyElementModuleRootOptions { elementConfigs?: ElementConfig[]; rootOptions?: LazyElementRootOptions; } interface LazyElementRootOptions { loadingComponent?: Type; errorComponent?: Type; isModule?: boolean; importMap?: boolean; preload?: boolean; hooks?: HooksConfig; } interface LazyElementOptions { elementConfigs?: ElementConfig[]; rootOptions?: LazyElementRootOptions; } declare const LAZY_ELEMENT_CONFIGS: InjectionToken; declare const LAZY_ELEMENT_ROOT_OPTIONS: InjectionToken; declare const LAZY_ELEMENT_ROOT_GUARD: InjectionToken; declare const LAZY_ELEMENTS_REGISTRY: InjectionToken; declare class LazyElementsLoaderService implements OnDestroy { #private; static controller: AbortController; readonly options: _angular_extensions_elements_src_lib_lazy_elements.LazyElementRootOptions; configs: ElementConfig[]; ngOnDestroy(): void; addConfigs(newConfigs: ElementConfig[]): void; getElementConfig(tag: string): ElementConfig | undefined; preload(tags?: string[]): void; loadElement(url: string | null, tag: string, isModule?: boolean, importMap?: boolean, hooksConfig?: HooksConfig): Promise; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵprov: _angular_core.ɵɵInjectableDeclaration; } declare class LazyElementDirective implements OnInit { #private; readonly url: _angular_core.InputSignal; readonly loadingTemplateRef: _angular_core.InputSignal>; readonly errorTemplateRef: _angular_core.InputSignal>; readonly isModule: _angular_core.InputSignal; readonly importMap: _angular_core.InputSignal; readonly loadingSuccess: _angular_core.InputSignal<() => void>; readonly loadingError: _angular_core.InputSignal<(error: ErrorEvent) => void>; ngOnInit(): void; destroyEmbeddedView(): void; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵdir: _angular_core.ɵɵDirectiveDeclaration; } declare class LazyElementDynamicDirective implements OnInit { #private; readonly tag: _angular_core.InputSignal; readonly url: _angular_core.InputSignal; readonly loadingTemplateRef: _angular_core.InputSignal>; readonly errorTemplateRef: _angular_core.InputSignal>; readonly isModule: _angular_core.InputSignal; readonly importMap: _angular_core.InputSignal; readonly loadingSuccess: _angular_core.InputSignal<() => void>; readonly loadingError: _angular_core.InputSignal<(error: ErrorEvent) => void>; ngOnInit(): void; destroyEmbeddedView(): void; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵdir: _angular_core.ɵɵDirectiveDeclaration; } declare function createLazyElementRootGuard(rootOptions: LazyElementRootOptions): string; declare class LazyElementsModule { static forRoot(options: LazyElementModuleRootOptions): ModuleWithProviders; static forFeature(options: LazyElementModuleOptions): ModuleWithProviders; readonly lazyElementsLoaderService: LazyElementsLoaderService; readonly elementConfigsMultiProvider: ElementConfig[][]; readonly guard: void; constructor(); static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵmod: _angular_core.ɵɵNgModuleDeclaration; static ɵinj: _angular_core.ɵɵInjectorDeclaration; } declare function createProvideLazyElementsGuard(rootOptions: LazyElementRootOptions): string; declare function provideAxLazyElements(options?: LazyElementOptions): EnvironmentProviders; declare function provideAxLazyElementsConfigs(configs?: ElementConfig[]): EnvironmentProviders; export { LAZY_ELEMENTS_REGISTRY, LAZY_ELEMENT_CONFIGS, LAZY_ELEMENT_ROOT_GUARD, LAZY_ELEMENT_ROOT_OPTIONS, LazyElementDirective, LazyElementDynamicDirective, LazyElementsLoaderService, LazyElementsModule, createLazyElementRootGuard, createProvideLazyElementsGuard, provideAxLazyElements, provideAxLazyElementsConfigs }; export type { ElementConfig, Hook, HooksConfig, LazyElementModuleOptions, LazyElementModuleRootOptions, LazyElementOptions, LazyElementRootOptions, LazyElementsRegistry };