import type { Ref, VNode } from 'vue' export type ILoadingOptions = { parent?: ILoadingParentElement background?: string spinner?: boolean | string text?: string fullscreen?: boolean body?: boolean lock?: boolean customClass?: string visible?: boolean target?: string | HTMLElement } export type ILoadingInstance = { 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 ILoadingGlobalConfig = { fullscreenLoading: ILoadingInstance } export type ILoadingCreateComponentParams = { options: ILoadingOptions globalLoadingOption: ILoadingGlobalConfig } export interface ILoadingParentElement extends HTMLElement { vLoadingAddClassList?: () => void }