import { EventEmitter } from '@stencil/core'; import { HTMLStencilElement } from '@stencil/core/internal'; import { Animation, AnimationBuilder, Mode } from '../interface'; export interface OverlayEventDetail { data?: T; role?: string; } export interface OverlayInterface { mode: Mode; el: HTMLElement; animated: boolean; keyboardClose: boolean; overlayIndex: number; presented: boolean; animation?: Animation; enterAnimation?: AnimationBuilder; leaveAnimation?: AnimationBuilder; didPresent: EventEmitter; willPresent: EventEmitter; willDismiss: EventEmitter; didDismiss: EventEmitter; present(): Promise; dismiss(data?: any, role?: string): Promise; } export interface OverlayController { create(opts?: any): Promise; dismiss(data?: any, role?: string, id?: string): Promise; getTop(): Promise; } export interface HTMLIonOverlayElement extends HTMLStencilElement { overlayIndex: number; backdropDismiss?: boolean; dismiss(data?: any, role?: string): Promise; } export type OverlaySelect = HTMLIonActionSheetElement | HTMLIonAlertElement | HTMLIonPopoverElement;