/**
 * --------------------------------------------------------------------------
 * NJ : abstract-component.ts
 * --------------------------------------------------------------------------
 */
export default abstract class AbstractComponent {
    protected static DATA_KEY: string;
    protected static DATA_API_KEY: string;
    protected static DEFAULT_OPTIONS: {
        [key: string]: any;
    };
    protected static EVENT_KEY: string;
    protected static NAME: string;
    protected static SELECTOR: {
        [key: string]: string;
    };
    protected options: any;
    protected element: HTMLElement;
    protected constructor(Component: any, element?: HTMLElement, options?: {});
    protected static init(Component: any, options: {}, selector: string): any[];
    /**
     * Destroys an element's component
     */
    abstract dispose(): void;
}
