import { EventEmitter } from '../../stencil-public-runtime';
import { OverlayEventDetail, OverlayInterface } from './bal-modal.type';
export declare class Modal implements OverlayInterface {
  private usersElement?;
  private modalContentElement?;
  private modalContainerElement?;
  private modalBackgroundElement?;
  private isClickedOutsideOnMouseDown;
  private isClickedOutsideOnMouseUp;
  private bodyScrollHandler;
  presented: boolean;
  el: HTMLBalModalElement;
  overlayIndex: number;
  delegate?: BalProps.FrameworkDelegate;
  dataTestId?: string;
  modalWidth: number;
  space: BalProps.BalModalSpace;
  hasBackdrop: boolean;
  isClosable: boolean;
  component: BalProps.ComponentRef;
  componentProps?: BalProps.ComponentProps;
  cssClass?: string | string[];
  backdropDismiss: boolean;
  demo: boolean;
  didPresent: EventEmitter<BalEvents.BalModalDidPresentDetail>;
  willPresent: EventEmitter<BalEvents.BalModalWillPresentDetail>;
  willDismiss: EventEmitter<BalEvents.BalModalWillDismissDetail>;
  didDismiss: EventEmitter<BalEvents.BalModalDidDismissDetail>;
  connectedCallback(): void;
  disconnectedCallback(): void;
  open(): Promise<void>;
  close(): Promise<void>;
  present(): Promise<void>;
  dismiss(data?: any, role?: string): Promise<boolean>;
  onDidDismiss<T = any>(): Promise<OverlayEventDetail<T>>;
  onWillDismiss<T = any>(): Promise<OverlayEventDetail<T>>;
  onClickCloseButton(ev: MouseEvent): Promise<void>;
  onMouseDown(ev: MouseEvent): Promise<void>;
  onMouseUp(ev: MouseEvent): Promise<void>;
  handleKeyUp(ev: KeyboardEvent): Promise<void>;
  private setModalActiveOnBody;
  private unsetModalActiveOnBody;
  private isClickedOutside;
  render(): any;
}
