import { EventEmitter } from '../../stencil-public-runtime';
import { IconName, IconPosition } from '../icon/exports';
import { ButtonAriaCurrent, ButtonSize, ButtonTarget, ButtonType, ButtonVariant } from './exports';
/**
* A button can be used by a user to trigger an action. Corresponds to, and is rendered as a,
* [native button](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button).
*
* Example:
* ```
* Submit
* Cancel
* Disabled
* Full width
* ```
*
* @slot - Button label text
* @slot icon - Icon placed inside the button (position controlled by the `iconPosition` prop)
*/
export declare class Button {
host: HTMLRButtonElement;
/**
* Reference form element id with which the button is associated.
*/
form?: string;
/**
* Button behavior, corresponding to
* [native `type` attribute](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#attr-type)
*/
type: ButtonType;
/**
* Sets string value for `aria-label` attribute
* (https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-label)
*/
rAriaLabel?: string;
/**
* Sets string value for `aria-description` attribute
* (https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-description)
*/
rAriaDescription?: string;
/** Visual size */
size: ButtonSize;
/** Presentational style */
variant: ButtonVariant;
/**
* Whether to present as a full-width (100%) button.
*
* Only primary and secondary buttons can be expanded.
*/
expanded?: boolean;
/** Prevents user interaction and applies disabled style */
disabled?: boolean;
/** Name of an icon to display within button. */
icon?: IconName;
/** Position of an icon within button.
* Only use it when 'icon' is specified.
* */
iconPosition: IconPosition;
/**
* URL or a URL fragment that the hyperlink points to.
* If the property is set, an anchor tag will be rendered.
*/
href?: string;
/**
* Specifies where to display the linked URL.
* Only applies when an `href` is provided.
* Special keywords: `"_blank"`, `"_self"`, `"_parent"`, `"_top"`.
*/
target?: ButtonTarget;
/**
* Indicates the current item within a set of related elements.
* Corresponds to
* [native `aria-current` attribute](https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-current)
*/
rAriaCurrent?: ButtonAriaCurrent;
/** Emits `rClick` event on click and keyup */
rClick: EventEmitter;
handleIconChange(): void;
/** Reference to the native button */
private nativeElement?;
/** Simulate a button click */
triggerClick(): Promise;
/** Set focus on the button */
setFocus(): Promise;
/** Remove focus from the button */
setBlur(): Promise;
get hasText(): boolean;
get hasIcon(): boolean;
get isIconOnly(): boolean;
get isLink(): boolean;
private _activateTmpButton;
private get hasShadowDom();
private get formEl();
private get isResetOrSubmit();
private get hasIconSlot();
private get ariaCurrentValue();
/**
* Handles button action based on its type attribute
* @param {Event} event event from onClick on the component
*/
private handleClick;
private handleSlotChange;
componentDidLoad(): void;
render(): any;
}