import { VNode } from '../../stencil-public-runtime';
import { Width } from '../types';
import { ButtonAppearance, ButtonPalette, ButtonTarget } from './types';
/**
 * Passing a 'href' will render an anchor link, instead of a button. Role will
 * be set to link, or button, depending on this. It is the consumers
 * responsibility to add aria information, rel, target, for links, and any
 * button attributes for form submission.
 *
 * @slot default text slot for button text.
 */
export declare class Button {
  host: HTMLAbdsButtonElement;
  /**
   * Provides an outlined appearance (i.e. solid border) to the button.
   * Currently, only brand and destructive variants support outline.
   */
  appearance: ButtonAppearance;
  /** Sets button type attribute; defaults to **button** if not specified. */
  buttonType: string;
  /** Disables button interaction. */
  disabled: boolean;
  /** Form ID associated with component. */
  formId: string;
  /** Sets anchor href attribute; determines if component should render as anchor or button. */
  href: string;
  /** Adds an abds-icon to end of button text. */
  iconEnd: string;
  /** Adds an abds-icon to beginning of button text. */
  iconStart: string;
  /** Sets aria-label attribute on anchor or button. */
  label: string;
  /** Sets button name attribute. */
  name: string;
  /** Sets button color. */
  palette: ButtonPalette;
  /** Sets anchor rel attribute. */
  rel: string;
  /** Sets anchor target attribute. */
  target: ButtonTarget;
  /** Sets button width. */
  width: Width;
  /** rendered child element */
  private childEl;
  /** rendered child element node type */
  private childElType;
  /** watches for changing text content **/
  private observer;
  private handleClick;
  private updateHasContent;
  /** Determine if slotted content is present for styling purposes. */
  private hasContent;
  /** Sets focus on child element. */
  setFocus(): Promise<void>;
  componentWillLoad(): void;
  componentWillRender(): void;
  connectedCallback(): void;
  disconnectedCallback(): void;
  render(): VNode;
}
