import { OnDestroy } from '@angular/core';
import { ScriptLoaderService } from '../../script-loader.service';
import * as i0 from "@angular/core";
declare var NSUtil: any;
export interface NSComponent {
    removeComponent(): void;
}
export declare abstract class NSBaseComponent<T extends NSComponent> implements OnDestroy {
    protected scriptLoader: ScriptLoaderService;
    private elementRef;
    protected element: HTMLElement;
    protected nsUtil: typeof NSUtil;
    protected arrEvents: string[];
    protected objNSComp: T | null;
    protected hasInitialized: boolean;
    protected hasDestroyed: boolean;
    constructor();
    getElement(): HTMLElement;
    protected initializeScripts(compName: string[]): void;
    protected initializeEvents(arrEvents: string[]): void;
    protected addEvents(): void;
    protected eventListener(event: any, eventName: string): void;
    ngOnDestroy(): void;
    destroy(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<NSBaseComponent<any>, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<NSBaseComponent<any>, "ns-base", never, {}, {}, never, never, false, never>;
}
export {};
