import type { MaybeRef } from 'vuesax-alpha/es/utils';
import type { ExtractPropTypes } from 'vue';
import type Loading from './loading.vue';
export declare const loadingTypes: readonly ["atom", "ball", "scale", "waves", "border", "points", "square", "circles", "corners", "default", "gradient", "rectangle", "square-rotate"];
export declare type LoadingType = (typeof loadingTypes)[number];
export declare const loadingProps: {
    type: import("vuesax-alpha/es/utils").VsPropFinalized<(new (...args: any[]) => ("default" | "border" | "gradient" | "scale" | "square" | "atom" | "ball" | "waves" | "points" | "circles" | "corners" | "rectangle" | "square-rotate") & {}) | (() => "default" | "border" | "gradient" | "scale" | "square" | "atom" | "ball" | "waves" | "points" | "circles" | "corners" | "rectangle" | "square-rotate") | ((new (...args: any[]) => ("default" | "border" | "gradient" | "scale" | "square" | "atom" | "ball" | "waves" | "points" | "circles" | "corners" | "rectangle" | "square-rotate") & {}) | (() => "default" | "border" | "gradient" | "scale" | "square" | "atom" | "ball" | "waves" | "points" | "circles" | "corners" | "rectangle" | "square-rotate"))[], "default" | "border" | "gradient" | "scale" | "square" | "atom" | "ball" | "waves" | "points" | "circles" | "corners" | "rectangle" | "square-rotate", unknown, string, boolean>;
    text: {
        readonly type: import("vue").PropType<string>;
        readonly required: false;
        readonly validator: ((val: unknown) => boolean) | undefined;
        __vsPropKey: true;
    };
    scale: import("vuesax-alpha/es/utils").VsPropFinalized<(new (...args: any[]) => (string | number) & {}) | (() => string | number) | ((new (...args: any[]) => (string | number) & {}) | (() => string | number))[], unknown, unknown, number, boolean>;
    color: {
        readonly type: import("vue").PropType<import("vuesax-alpha/es/utils").VsPropMergeType<StringConstructor, "primary" | "success" | "danger" | "warn" | "dark" | "text" | "light" | "secondary" | "facebook" | "twitter" | "youtube" | "pinterest" | "linkedin" | "snapchat" | "whatsapp" | "tumblr" | "reddit" | "spotify" | "amazon" | "medium" | "vimeo" | "skype" | "dribbble" | "slack" | "yahoo" | "twitch" | "discord" | "telegram" | "google-plus" | "messenger", import("../../..").Color>>;
        readonly required: false;
        readonly validator: ((val: unknown) => boolean) | undefined;
        __vsPropKey: true;
    };
    target: {
        readonly type: import("vue").PropType<import("vuesax-alpha/es/utils").VsPropMergeType<(new (...args: any[]) => (string | HTMLElement) & {}) | (() => string | HTMLElement) | ((new (...args: any[]) => (string | HTMLElement) & {}) | (() => string | HTMLElement))[], unknown, unknown>>;
        readonly required: false;
        readonly validator: ((val: unknown) => boolean) | undefined;
        __vsPropKey: true;
    };
    opacity: import("vuesax-alpha/es/utils").VsPropFinalized<(new (...args: any[]) => (string | number) & {}) | (() => string | number) | ((new (...args: any[]) => (string | number) & {}) | (() => string | number))[], unknown, unknown, number, boolean>;
    percent: {
        readonly type: import("vue").PropType<import("vuesax-alpha/es/utils").VsPropMergeType<(new (...args: any[]) => (string | number) & {}) | (() => string | number) | ((new (...args: any[]) => (string | number) & {}) | (() => string | number))[], unknown, unknown>>;
        readonly required: false;
        readonly validator: ((val: unknown) => boolean) | undefined;
        __vsPropKey: true;
    };
    progress: {
        readonly type: import("vue").PropType<import("vuesax-alpha/es/utils").VsPropMergeType<(new (...args: any[]) => (string | number) & {}) | (() => string | number) | ((new (...args: any[]) => (string | number) & {}) | (() => string | number))[], unknown, unknown>>;
        readonly required: false;
        readonly validator: ((val: unknown) => boolean) | undefined;
        __vsPropKey: true;
    };
    background: {
        readonly type: import("vue").PropType<import("vuesax-alpha/es/utils").VsPropMergeType<StringConstructor, "primary" | "success" | "danger" | "warn" | "dark" | "text" | "light" | "secondary" | "facebook" | "twitter" | "youtube" | "pinterest" | "linkedin" | "snapchat" | "whatsapp" | "tumblr" | "reddit" | "spotify" | "amazon" | "medium" | "vimeo" | "skype" | "dribbble" | "slack" | "yahoo" | "twitch" | "discord" | "telegram" | "google-plus" | "messenger", import("../../..").Color>>;
        readonly required: false;
        readonly validator: ((val: unknown) => boolean) | undefined;
        __vsPropKey: true;
    };
};
export declare type LoadingProps = ExtractPropTypes<typeof loadingProps>;
export declare type LoadingInstance = InstanceType<typeof Loading>;
export declare type LoadingParams = Partial<LoadingProps & {
    visible: boolean;
}>;
export declare type LoadingParamsRef = {
    [P in keyof LoadingParams]?: MaybeRef<LoadingParams[P]>;
};
export interface LoadingHandle {
    close: () => void;
    setText: (text: string) => void;
    setProgress: (progress: number) => void;
    setPercent: (percent: number) => void;
}
export declare type LoadingFn = (options?: LoadingParamsRef) => LoadingHandle;
