import { App } from "../../App";
import { AtomComponent } from "../../core/AtomComponent";
import { AtomStyleSheet } from "../styles/AtomStyleSheet";
declare global {
    export interface HTMLElement {
        atomControl: AtomControl;
        _logicalParent: HTMLElement;
        _templateParent: AtomControl;
    }
}
/**
 * AtomControl class represents UI Component for a web browser.
 */
export declare class AtomControl extends AtomComponent<HTMLElement, AtomControl> {
    defaultControlStyle: any;
    private mControlStyle;
    controlStyle: any;
    private mTheme;
    private mCachedTheme;
    /**
     * Represents associated AtomStyleSheet with this visual hierarchy. AtomStyleSheet is
     * inherited by default.
     */
    theme: AtomStyleSheet;
    /**
     * Gets Parent AtomControl of this control.
     */
    readonly parent: AtomControl;
    constructor(app: App, e?: HTMLElement);
    onPropertyChanged(name: string): void;
    atomParent(e: HTMLElement): AtomControl;
    append(element: AtomControl | HTMLElement | Text): AtomControl;
    updateSize(): void;
    protected preCreate(): void;
    protected setElementValue(element: HTMLElement, name: string, value: any): void;
    protected setElementClass(element: HTMLElement, value: any, clear?: boolean): void;
    protected onUpdateSize(): void;
    protected removeAllChildren(e: HTMLElement): void;
}
//# sourceMappingURL=AtomControl.d.ts.map