import type { Ref, VNode } from 'vue' export interface RLoadingParentElement extends HTMLElement { vLoadingAddClassList?: () => void } export type RLoadingOptions = { parent?: RLoadingParentElement background?: string spinner?: boolean | string text?: string fullscreen?: boolean body?: boolean lock?: boolean customClass?: string visible?: boolean target?: string | HTMLElement } export type RLoadingInstance = { parent?: Ref background?: Ref spinner?: Ref text?: Ref fullscreen?: Ref body?: Ref lock?: Ref customClass?: Ref visible?: Ref target?: Ref originalPosition?: Ref originalOverflow?: Ref setText: (text: string) => void close: () => void handleAfterLeave: () => void vm: VNode $el: HTMLElement } export type RLoadingGlobalConfig = { fullscreenLoading: RLoadingInstance } export type RLoadingCreateComponentParams = { options: RLoadingOptions globalLoadingOption: RLoadingGlobalConfig }