import { Observable, Subscription } from "rxjs"; export declare type IUIProvider = ILoadingUIProvider & IAlertsUIProvider & IToastUIProvider & ILegalityDialogUIProvider; export interface ILoadingUIProvider { createLoading(message?: string): Promise; watchLoading(source: Observable, options?: { debounce?: number; message?: string; timeoutMs?: number | null; debug?: string; }): Promise; } export interface ILoadingElem { present(): Promise; dismiss(): Promise; } export interface IAlertsUIProvider { yesNoAlert(message: string, options?: IYesNoAlertOptions): Promise; okAlert(message: string, options?: IOkAlertOptions): Promise; errorAlert(message: string, options?: IOkAlertOptions): Promise; infoAlert(message: string, options?: IOkAlertOptions): Promise; textboxInputAlert(options: ITextAlertOptions): Promise; } export interface ITextAlertOptions extends IOkAlertOptions { okText?: string; value?: string; placeholder?: string; } export interface IYesNoAlertOptions extends IOkAlertOptions { defaultToNo?: boolean; } export interface IOkAlertOptions { header?: string; subHeader?: string; interpolateParams?: object; } export interface IPickerUIProvider { picker(options: IPickerServiceOptions): Promise; } export interface IPickerServiceOptions { title: string; options: { text: string; value: any; }[]; confirmText?: string; cancelText?: string; interpolateParams?: object; } export interface IToastUIProvider { createToast(message: string, options?: IToastOptions): Promise; toast(message: string, options?: IToastOptions): Promise; errorToast(error: Error, messagePrefix?: string, options?: IToastOptions): Promise; } export interface IToastElem { present(): Promise; dismiss(): Promise; onDidDismiss(): Promise; } export interface IToastOptions { duration?: number; interpolateParams?: object; position?: 'middle' | 'top' | 'bottom'; } export interface ILegalityDialogUIProvider { confirmTos(): Promise; }