import type { Ref, VNode } from 'vue';
export declare type ILoadingOptions = {
    parent?: ILoadingParentElement;
    background?: string;
    svg?: string;
    svgViewBox?: string;
    spinner?: boolean | string;
    text?: string;
    fullscreen?: boolean;
    body?: boolean;
    lock?: boolean;
    customClass?: string;
    visible?: boolean;
    target?: string | HTMLElement;
};
export declare type ILoadingInstance = {
    parent?: Ref<ILoadingParentElement>;
    background?: Ref<string>;
    spinner?: Ref<boolean | string>;
    text?: Ref<string>;
    fullscreen?: Ref<boolean>;
    body?: Ref<boolean>;
    lock?: Ref<boolean>;
    customClass?: Ref<string>;
    visible?: Ref<boolean>;
    target?: Ref<string | HTMLElement>;
    originalPosition?: Ref<string>;
    originalOverflow?: Ref<string>;
    setText: (text: string) => void;
    close: () => void;
    handleAfterLeave: () => void;
    vm: VNode;
    $el: HTMLElement;
};
export declare type ILoadingGlobalConfig = {
    fullscreenLoading: ILoadingInstance;
};
export declare type ILoadingCreateComponentParams = {
    options: ILoadingOptions;
    globalLoadingOption: ILoadingGlobalConfig;
};
export interface ILoadingParentElement extends HTMLElement {
    vLoadingAddClassList?: () => void;
}
