import { EventEmitter } from '../../../stencil-public-runtime';
import { PnButtonAppearance, PnButtonVariant } from "../../../index";
/**
 * The `pn-button` is built with a native `button` or `a` element, if you use the `href` attribute.
 *
 * @nativeClick Use the `click` event to listen when the button is clicked.
 */
export declare class PnButton {
    buttonEl: HTMLElement;
    tooltipEl: HTMLDivElement;
    tooltipDx: number;
    openEvents: string[];
    closeEvents: string[];
    eventListeners: string[];
    hostElement: HTMLElement;
    tooltipOpen: boolean;
    tooltipUpwards: boolean;
    /** The label of the button, this is the same as using the default slot. @since v7.4.0 */
    label?: string;
    /**
     * Select the button appearance: default (blue), `light` (white) and  `warning` (red).
     *
     * @category Visual
     */
    appearance?: PnButtonAppearance;
    /**
     * Select the button variant: default (colored background), `outlined` (bordered, no background) and `borderless` (borderless, no background).
     *
     * @category Visual
     */
    variant?: PnButtonVariant;
    /** Use the small button. @category Visual */
    small?: boolean;
    /** Display the loading indicator. @category Visual */
    loading?: boolean;
    /**
     * The SVG content of the icon you want.
     * @see {@link https://portal.postnord.com/web-components/?path=/docs/docs-assets--docs pn-design-assets}
     * @category Icon
     */
    icon?: string;
    /**
     * Turn the button into an icon only. Requires `icon` and one of the following props to work: `tooltip`, `arialabel` or `arialabelledby`.
     * @summary __You need an `icon` selected, as well as either `tooltip`, `arialabel` or `arialabelledby` for this to work__.
     * @see {@link icon}
     * @since v7.4.0
     * @category Icon
     */
    iconOnly?: boolean;
    /**
     * Place the `icon` to the left of the button.
     *
     * @summary __You need an `icon` selected for this to work__.
     * @see {@link icon}
     * @category Icon
     */
    leftIcon?: boolean;
    /**
     * When the user focus/hover the button, the `tooltip` text will show up.
     *
     * @category Tooltip
     */
    tooltip?: string;
    /**
     * Prefer the tooltip to open upwards. Will still go downwards if there is no space.
     * @since v7.4.0
     * @category Tooltip
     */
    tooltipUp?: boolean;
    /** Select HTML button type. @category Button */
    type?: 'button' | 'reset' | 'submit' | '';
    /**
     * Connect this button to a HTML form.
     * @category Button
     * @see {@link https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#form HTML button form}
     */
    form?: string;
    /** Pass an href to make the button into link (a-tag). @category Link */
    href?: string;
    /** The rel attribute of the link. @category Link */
    rel?: string;
    /** The target attribute of the link. @category Link */
    target?: string;
    /** The download attribute of the link. @category Link */
    download?: string;
    /** HTML ID. @category HTML attributes */
    buttonId?: string;
    /** HTML aria-label attribute. @category HTML attributes */
    arialabel?: string;
    /** HTML aria-labelledby attribute. @category HTML attributes */
    arialabelledby?: string;
    /** HTML aria-current attribute. @since v7.9.0 @category HTML attributes */
    ariacurrent?: string;
    /** HTML aria-controls attribute. @category HTML attributes */
    ariacontrols?: string;
    /** HTML aria-pressed attribute. @category HTML attributes */
    ariapressed?: string;
    /** HTML aria-haspopup attribute. @category HTML attributes */
    ariahaspopup?: string;
    /** HTML aria-expanded attribute. @category HTML attributes */
    ariaexpanded?: string;
    /** HTML tabindex. @category HTML attributes */
    noTab?: boolean;
    openHandler(): void;
    iconOnlyHandler(): void;
    /**
     * This event is fired when the `button`/`a` element of the `pn-button` is clicked.
     * Setting an eventListener for `click` on the `pn-button` will trigger if you click outside of the button area
     * or if the button is `disabled` with the `loading` prop.
     * @since v7.4.0
     **/
    pnClick: EventEmitter<MouseEvent>;
    componentWillLoad(): void;
    componentDidLoad(): void;
    getRect(element: HTMLElement): DOMRect;
    initTooltip(): void;
    removeTooltip(): void;
    toggleTooltip: (event: MouseEvent | FocusEvent) => void;
    setTooltipOffset(): void;
    checkTooltipPosition(): void;
    getAttributes(): {
        href: string;
        rel: string;
        target: string;
        download: string;
        'aria-current': string;
        'aria-disabled': string;
        type?: undefined;
        form?: undefined;
        disabled?: undefined;
        'aria-pressed'?: undefined;
        'aria-controls'?: undefined;
        'aria-haspopup'?: undefined;
        'aria-expanded'?: undefined;
        tabindex: string;
        'data-small': boolean;
        'data-loading': boolean;
        'data-tooltip-open': boolean;
        'data-tooltip-upwards': boolean;
        'data-icon-only': boolean;
        'data-left-icon': boolean;
        'data-appearance': PnButtonAppearance;
        'data-variant': PnButtonVariant;
    } | {
        type: "" | "button" | "reset" | "submit";
        form: string;
        disabled: boolean;
        'aria-pressed': string;
        'aria-controls': string;
        'aria-haspopup': string;
        'aria-expanded': string;
        href?: undefined;
        rel?: undefined;
        target?: undefined;
        download?: undefined;
        'aria-current'?: undefined;
        'aria-disabled'?: undefined;
        tabindex: string;
        'data-small': boolean;
        'data-loading': boolean;
        'data-tooltip-open': boolean;
        'data-tooltip-upwards': boolean;
        'data-icon-only': boolean;
        'data-left-icon': boolean;
        'data-appearance': PnButtonAppearance;
        'data-variant': PnButtonVariant;
    };
    getTagName(): "button" | "a";
    showIconOnly(): boolean;
    handleClick(event: MouseEvent): void;
    render(): any;
}
