import { ModalPalette } from './types';
export interface AbdsFocusableElement extends HTMLElement {
  setFocus?: () => Promise<void>;
}
/**
 * @slot modal-body - Modifies modal-body slot content.
 * @slot modal-footer - Modifies modal-footer slot content.
 */
export declare class Modal {
  host: HTMLAbdsModalElement;
  /** Sets header text. */
  headerText: string;
  /** Adds an abds-icon on left side of header text. */
  icon: string;
  /** Sets open/closed state. */
  open: boolean;
  /** Sets header text color. */
  palette: ModalPalette;
  handleOpenStateChange(newOpen: boolean, oldOpen?: boolean): void;
  private bottomObserver;
  private closeButtonEl;
  private focusCycleDirection;
  private focusGateStartEl;
  private modalBodyBottomEl;
  private modalBodyEl;
  private modalBodyTopEl;
  private modalBodyWrapperEl;
  private returnFocusEl;
  private topObserver;
  private closeModal;
  private getSlotByName;
  private focusNextFocusableElement;
  private initIntersectionObserver;
  private observeBottomIntersection;
  private observeTopIntersection;
  private returnFocus;
  private wrapFocus;
  /** Determines if footer should be shown. */
  hasFooter: boolean;
  /**
   * Reflects the condition where .modal-body content is taller than
   * .modal-body-wrapper.
   */
  isBodyBottomOverflown: boolean;
  isBodyTopOverflown: boolean;
  handleKeyup(event: KeyboardEvent): void;
  handleKeydown(event: KeyboardEvent): void;
  componentDidLoad(): void;
  componentDidRender(): void;
  componentWillLoad(): void;
  disconnectedCallback(): void;
  render(): any;
}
