import { ComponentOptionsMixin } from 'vue';
import { ComponentProvideOptions } from 'vue';
import { DefineComponent } from 'vue';
import { PublicProps } from 'vue';

declare const __VLS_component: DefineComponent<Props, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<Props> & Readonly<{}>, {
appearance: "circle" | "line" | "square" | "custom-content" | "";
size: number | `${number}` | `${number}px` | null;
animation: "progress" | "progress-dark" | "pulse" | "false" | false | "pulse-dark";
theme: {
[k: string]: string | number;
} | null;
loadingText: string;
count: number | `${number}`;
ariaLabel: string;
}, {}, {}, {}, string, ComponentProvideOptions, false, {}, any>;

declare function __VLS_template(): {
    attrs: Partial<{}>;
    slots: {
        default?(_: {}): any;
    };
    refs: {};
    rootEl: any;
};

declare type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;

declare type __VLS_WithTemplateSlots<T, S> = T & {
    new (): {
        $slots: S;
    };
};

declare interface Props extends Partial<VueSkeletonContentLoaderConfig> {
}

export declare const VueSkeletonContentLoader: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;

export declare interface VueSkeletonContentLoaderConfig {
    appearance: 'circle' | 'line' | 'square' | 'custom-content' | '';
    size: number | `${number}` | `${number}px` | null;
    animation: 'progress' | 'progress-dark' | 'pulse' | 'false' | false | 'pulse-dark';
    theme: VueSkeletonContentLoaderConfigTheme;
    loadingText: string;
    count: number | `${number}`;
    ariaLabel: string;
}

declare type VueSkeletonContentLoaderConfigTheme = {
    [k: string]: string | number;
} | null;

export { }
