import { type ComputedRef, type Ref } from "vue";
import { type SnackbarProvider } from "@feedmepos/ui-library";
export interface UseLoadingReturn {
    queue: ComputedRef<{
        id: string;
        isGlobal: boolean;
    }[]>;
    checkIsLoading: (id: string) => boolean;
    global: <T>(fn: () => Promise<T>, config?: {
        onSuccess?: (resp: T) => Promise<void> | void;
        successMessage?: string;
    }) => Promise<T>;
    minor: <T>(fn: () => Promise<T>, config?: {
        customId?: string | string[];
        isLoading?: Ref<boolean>;
        message?: string | Ref<string>;
        caption?: string | Ref<string>;
        icon?: string;
        successMessage?: string;
        successIcon?: string;
    }) => Promise<T>;
    custom: <T>(fn: () => Promise<T>, config?: {
        isLoading?: Ref<boolean>;
        successMessage?: string;
        customId?: string | string[];
    }) => Promise<T>;
}
declare const useLoading: (snackbar: SnackbarProvider) => UseLoadingReturn;
export default useLoading;
