import { ComponentInterface, EventEmitter } from '../../stencil-public-runtime';
import { HTMLStencilElement } from '../../stencil-public-runtime';
export declare class Button implements ComponentInterface {
    private inheritAttributes;
    el: HTMLStencilElement;
    isLargestContentPaintDone: boolean;
    /**
     * The color to use from your application's color palette.
     */
    color: BalProps.BalButtonColor;
    /**
     * The type of button.
     */
    elementType: BalProps.BalButtonElementType;
    /**
     * If `true`, the user cannot interact with the button.
     */
    disabled: boolean;
    /**
     * Size of the button
     */
    size: BalProps.BalButtonSize;
    /**
     * Specifies the URL of the page the link goes to
     */
    href?: string;
    /**
     * Specifies where to display the linked URL.
     * Only applies when an `href` is provided.
     */
    target: BalProps.BalButtonTarget;
    /**
     * Specifies the relationship of the target object to the link object.
     * The value is a space-separated list of [link types](https://developer.mozilla.org/en-US/docs/Web/HTML/Link_types).
     */
    rel?: string;
    /**
     * This attribute instructs browsers to download a URL instead of navigating to
     * it, so the user will be prompted to save it as a local file. If the attribute
     * has a value, it is used as the pre-filled file name in the Save prompt
     * (the user can still change the file name if they want).
     */
    download?: string;
    /**
     * If `true` adds a box shadow to improve readability on image background
     * */
    shadow: boolean;
    /**
     * If `true` the width of the buttons is limited
     */
    square: boolean;
    /**
     * If `true` the button has a active theme
     */
    isActive: boolean;
    /**
     * If `true` the button has a full width
     */
    expanded: boolean;
    /**
     * If `true` the button has no padding and a reduced height
     */
    flat: boolean;
    /**
     * If `true` the button is outlined
     */
    outlined: boolean;
    /**
     * If `true` the button is inverted
     */
    inverted: boolean;
    /**
     * If `true` the label is hidden and a loading spinner is shown instead.
     */
    loading: boolean;
    /**
     * If `true` the button is rounded.
     */
    rounded: boolean;
    /**
     * If `true` the button is a popup.
     */
    balPopup: any;
    /**
     * Name of the left button icon
     */
    icon: string;
    /**
     * If `true` the icon turns
     */
    iconTurn: boolean;
    /**
     * Name of the right button icon
     */
    iconRight: string;
    /**
     * The label of the button will not break
     */
    noWrap: boolean;
    /**
     * The name of the button, which is submitted with the form data.
     */
    name?: string;
    /**
     * The value of the button, which is submitted with the form data.
     */
    value?: string | number;
    /**
     * A11y attributes for the native button element.
     */
    a11yControls?: string;
    /**
     * A11y attributes for the native button element.
     */
    a11yTitle?: string;
    /**
     * A11y attributes for the native button element.
     */
    a11yLabel?: string;
    /**
     * A11y attributes for the native button element.
     */
    a11yHaspopup?: string;
    /**
     * Emitted when the link element has clicked.
     */
    balClick: EventEmitter<BalEvents.BalButtonClickDetail>;
    /**
     * Emitted when the link element has clicked.
     */
    balNavigate: EventEmitter<BalEvents.BalButtonNavigateDetail>;
    /**
     * Emitted when the button has focus.
     */
    balFocus: EventEmitter<BalEvents.BalButtonFocusDetail>;
    /**
     * Emitted when the button loses focus.
     */
    balBlur: EventEmitter<BalEvents.BalButtonBlurDetail>;
    /**
     * Emitted when the button has been  rendered.
     */
    balDidRender: EventEmitter<BalEvents.BalButtonDidRenderDetail>;
    listenOnClick(ev: UIEvent): void;
    componentDidLoad(): void;
    componentWillLoad(): void;
    componentDidRender(): void;
    private get isIconInverted();
    private get buttonCssClass();
    private get leftIconAttrs();
    private get leftRightAttrs();
    private get loadingAttrs();
    private handleClick;
    private onFocus;
    private onBlur;
    private onClick;
    render(): any;
}
