import { UIView, UIViewAddControlEventTargetObject, UIViewBroadcastEvent } from "./UIView";
export declare class UIBaseButton extends UIView {
    static controlEvent: {
        readonly PointerDown: "PointerDown";
        readonly PointerMove: "PointerMove";
        readonly PointerDrag: "PointerDrag";
        readonly PointerLeave: "PointerLeave";
        readonly PointerEnter: "PointerEnter";
        readonly PointerUpInside: "PointerUpInside";
        readonly PointerTap: "PointerTap";
        readonly PointerUp: "PointerUp";
        readonly MultipleTouches: "PointerZoom";
        readonly PointerCancel: "PointerCancel";
        readonly PointerHover: "PointerHover";
        readonly EnterDown: "EnterDown";
        readonly EnterUp: "EnterUp";
        readonly SpaceDown: "SpaceDown";
        readonly EscDown: "EscDown";
        readonly TabDown: "TabDown";
        readonly LeftArrowDown: "LeftArrowDown";
        readonly RightArrowDown: "RightArrowDown";
        readonly DownArrowDown: "DownArrowDown";
        readonly UpArrowDown: "UpArrowDown";
        readonly Focus: "Focus";
        readonly Blur: "Blur";
    } & {
        readonly PrimaryActionTriggered: "PrimaryActionTriggered";
    };
    controlEvent: {
        readonly PointerDown: "PointerDown";
        readonly PointerMove: "PointerMove";
        readonly PointerDrag: "PointerDrag";
        readonly PointerLeave: "PointerLeave";
        readonly PointerEnter: "PointerEnter";
        readonly PointerUpInside: "PointerUpInside";
        readonly PointerTap: "PointerTap";
        readonly PointerUp: "PointerUp";
        readonly MultipleTouches: "PointerZoom";
        readonly PointerCancel: "PointerCancel";
        readonly PointerHover: "PointerHover";
        readonly EnterDown: "EnterDown";
        readonly EnterUp: "EnterUp";
        readonly SpaceDown: "SpaceDown";
        readonly EscDown: "EscDown";
        readonly TabDown: "TabDown";
        readonly LeftArrowDown: "LeftArrowDown";
        readonly RightArrowDown: "RightArrowDown";
        readonly DownArrowDown: "DownArrowDown";
        readonly UpArrowDown: "UpArrowDown";
        readonly Focus: "Focus";
        readonly Blur: "Blur";
    } & {
        readonly PrimaryActionTriggered: "PrimaryActionTriggered";
    };
    get controlEventTargetAccumulator(): UIViewAddControlEventTargetObject<typeof UIBaseButton>;
    _selected: boolean;
    _highlighted: boolean;
    _isPointerInside: boolean;
    _isToggleable: boolean;
    _hovered?: boolean;
    _focused?: boolean;
    constructor(elementID?: string, elementType?: string);
    set hovered(hovered: boolean);
    get hovered(): boolean;
    set highlighted(highlighted: boolean);
    get highlighted(): boolean;
    set focused(focused: boolean);
    get focused(): boolean;
    set selected(selected: boolean);
    get selected(): boolean;
    updateContentForCurrentState(): void;
    updateContentForNormalState(): void;
    updateContentForHoveredState(): void;
    updateContentForFocusedState(): void;
    updateContentForHighlightedState(): void;
    updateContentForSelectedState(): void;
    updateContentForSelectedAndHighlightedState(): void;
    set enabled(enabled: boolean);
    get enabled(): boolean;
    updateContentForCurrentEnabledState(): void;
    addStyleClass(styleClassName: string): void;
    didReceiveBroadcastEvent(event: UIViewBroadcastEvent): void;
    toggleSelectedState(): void;
    set isToggleable(isToggleable: boolean);
    get isToggleable(): boolean;
    layoutSubviews(): void;
    sendControlEventForKey(eventKey: string, nativeEvent: Event): void;
    static getEventCoordinatesInDocument(touchOrMouseEvent: any): {
        x: number;
        y: number;
    };
    static getElementPositionInDocument(el: {
        tagName: string;
        offsetLeft: number;
        scrollLeft: number;
        clientLeft: number;
        offsetTop: number;
        scrollTop: number;
        clientTop: number;
        offsetParent: any;
    }): {
        x: number;
        y: number;
    };
    static convertCoordinatesFromDocumentToElement(x: number, y: number, element: any): {
        x: number;
        y: number;
    };
    static getEventCoordinatesInElement(touchOrMouseEvent: any, element: any): {
        x: number;
        y: number;
    };
}
