import { AfterViewInit, Injector, OnDestroy } from '@angular/core';
import { Subject } from 'rxjs';
import { AbstractI18nService, App, ScriptLoaderService, Viewport } from '@wm/core';
import { PageDirective, SpaPageDirective } from '@wm/components/page';
import { PrefabManagerService } from '../services/prefab-manager.service';
import { FragmentMonitor } from '../util/fragment-monitor';
import * as i0 from "@angular/core";
export declare abstract class BasePrefabComponent extends FragmentMonitor implements AfterViewInit, OnDestroy {
    Widgets: any;
    Variables: any;
    Actions: any;
    App: App;
    injector: Injector;
    containerWidget: any;
    prefabMngr: PrefabManagerService;
    displayName: string;
    prefabName: string;
    i18nService: AbstractI18nService;
    appLocale: any;
    prefabContainerDirective: any;
    scriptLoaderService: ScriptLoaderService;
    compileContent: boolean;
    pageDirective: PageDirective | SpaPageDirective;
    Viewport: Viewport;
    spa: boolean;
    destroy$: Subject<unknown>;
    viewInit$: Subject<unknown>;
    private viewParent;
    abstract evalUserScript(prefabContext: any, appContext: any, utils: any): any;
    abstract getVariables(): any;
    abstract getExpressions(): any;
    getContainerWidgetInjector(): any;
    init(): void;
    registerWidgets(): void;
    initUserScript(): void;
    registerChangeListeners(): void;
    registerDestroyListener(fn: Function): void;
    defineI18nProps(): void;
    registerProps(): void;
    initVariables(): void;
    /**
     * function to register bind expressions generated in this page instance
     * getExpressions function is defined in the generated page.comp.ts file
     * @param expressions, map of bind expression vs generated function
     */
    registerExpressions(): void;
    invokeOnReady(): void;
    private loadScripts;
    mute(): void;
    unmute(): void;
    ngOnAttach(refreshData: any): void;
    ngOnDetach(): void;
    ngAfterViewInit(): void;
    ngOnDestroy(): void;
    onPropertyChange(): void;
    onReady(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<BasePrefabComponent, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<BasePrefabComponent, never, never, {}, {}, never, never, false, never>;
}
