import BaseClassFactory from "./baseClassFactory/BaseClassFactory";
export interface IRenderable {
    render: () => this;
}
export declare class HTMLComponent implements IRenderable {
    #private;
    baseCssClass: string;
    static BaseClassFactory: BaseClassFactory;
    parentComponent: HTMLComponent;
    widgetHtml: JQuery<HTMLElement>;
    html: JQuery<HTMLElement>;
    htmlParent: JQuery<HTMLElement>;
    constructor(baseCssClass: string, ParentComponent: HTMLComponent, widgetHtml: JQuery<HTMLElement>);
    render(): this;
    destroy(): void;
    /**
     * @returns moves up the component hierarchy and returns the one that does not have a parent component
     */
    getRootComponent(): HTMLComponent;
    /**
     * Utility function to switch css class of an element from oldState to newState.
     */
    static switchState(el: HTMLElement, oldState: string, newState: string): void;
}
