import type { App, Component, ComponentPublicInstance, Ref } from 'vue'; import { useInternalLoading } from './use-loading'; export type InternalSpinnerType = 'dot' | 'circle'; export interface LoadingProps { background: string; title: string | Ref; helper: string | Ref; layout: Component; spinner: Component; target: HTMLElement | 'root' | 'body' | Ref; type: InternalSpinnerType; lock: boolean; fullscreen: boolean; visible: boolean; } export interface LoadingState { app?: App; vm?: ComponentPublicInstance; oriOverflow?: string; oriPosition?: string; oriBodyOverflow?: string; oriZIndex?: string; } export type UseLoading = ReturnType; export type RootNode = ShadowRoot | HTMLElement | Document;