import { AgEvent } from "../events";
import { AgStackComponentsRegistry } from "../components/agStackComponentsRegistry";
import { BeanStub } from "../context/beanStub";
export interface VisibleChangedEvent extends AgEvent {
    visible: boolean;
}
export declare class Component extends BeanStub {
    static EVENT_DISPLAYED_CHANGED: string;
    private eGui;
    private annotatedGuiListeners;
    protected agStackComponentsRegistry: AgStackComponentsRegistry;
    private displayed;
    private visible;
    protected parentComponent: Component | undefined;
    private compId;
    constructor(template?: string);
    getCompId(): number;
    private createChildComponentsFromTags;
    createComponentFromElement(element: HTMLElement, afterPreCreateCallback?: (comp: Component) => void, paramsMap?: any): Component;
    private copyAttributesFromNode;
    private swapComponentForNode;
    private swapInComponentForQuerySelectors;
    private iterateOverQuerySelectors;
    setTemplate(template: string, paramsMap?: any): void;
    setTemplateFromElement(element: HTMLElement, paramsMap?: any): void;
    private createChildComponentsPreConstruct;
    protected wireQuerySelectors(): void;
    private addAnnotatedGuiEventListeners;
    private addAnnotatedGridEventListeners;
    private getAgComponentMetaData;
    private removeAnnotatedGuiEventListeners;
    getGui(): HTMLElement;
    getFocusableElement(): HTMLElement;
    setParentComponent(component: Component): void;
    getParentComponent(): Component | undefined;
    protected setGui(eGui: HTMLElement): void;
    protected queryForHtmlElement(cssSelector: string): HTMLElement;
    protected queryForHtmlInputElement(cssSelector: string): HTMLInputElement;
    appendChild(newChild: HTMLElement | Component, container?: HTMLElement): void;
    isDisplayed(): boolean;
    setVisible(visible: boolean): void;
    setDisplayed(displayed: boolean): void;
    protected destroy(): void;
    addGuiEventListener(event: string, listener: (event: any) => void): void;
    addCssClass(className: string): void;
    removeCssClass(className: string): void;
    addOrRemoveCssClass(className: string, addOrRemove: boolean): void;
    getAttribute(key: string): string | null;
    getRefElement(refName: string): HTMLElement;
}
