import { VNode } from '../../stencil-public-runtime';
import { Width } from '../types';
import { ButtonAppearance, ButtonPalette, ButtonTarget } from './types';
export declare class Button {
  /** rendered child element */
  private childEl;
  /** rendered child element node type */
  private childElType;
  /** watches for changing text content **/
  private observer;
  /** determine if slotted content present for styling purposes */
  private hasContent;
  private handleClick;
  private updateHasContent;
  el: HTMLAbdsButtonElement;
  /**
   * Button appearance provides an outline (i.e. solid border) to the button.
   * Currently, only brand and destructive variants support outline.
   */
  appearance: ButtonAppearance;
  /** Enables button type attribute; defaults to 'button' if not specified */
  buttonType: string;
  /** Disables button click event */
  disabled: boolean;
  /** Form ID associated with component */
  formId: string;
  /** Enables 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;
  /** Enables aria-label attribute on anchor or button */
  label: string;
  /** Enables button name attribute */
  name: string;
  /** Button palette shows different button color options */
  palette: ButtonPalette;
  /** Enables anchor rel attribute */
  rel: string;
  /** Enables anchor target attribute */
  target: ButtonTarget;
  /** Sets button width */
  width: Width;
  /** Sets focus on child element. */
  setFocus(): Promise<void>;
  componentWillLoad(): void;
  componentWillRender(): void;
  connectedCallback(): void;
  disconnectedCallback(): void;
  render(): VNode;
}
