import { type PropType } from 'vue';
declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<{
    ratio: {
        type: PropType<number | "auto">;
        default: string;
        validator: (v: number | 'auto') => boolean;
    };
    fit: {
        type: PropType<"fill" | "none" | "contain" | "cover" | "scale-down">;
        default: string;
    };
    maxWidth: {
        type: (StringConstructor | NumberConstructor)[];
        default: number;
        validator: (v: number | string) => boolean;
    };
    lazy: {
        type: BooleanConstructor;
        default: boolean;
    };
    placeholderSrc: {
        type: StringConstructor;
        default: string;
    };
    onFallback: {
        type: PropType<(...args: any[]) => any>;
        required: true;
        default: ((...args: any[]) => any) | undefined;
    };
    fallbackSrc: {
        type: PropType<string>;
        required: true;
        default: string | undefined;
    };
    fallbackText: {
        type: PropType<string>;
        required: true;
        default: string | undefined;
    };
    fallbackIcon: {
        type: PropType<string>;
        required: true;
        default: string | undefined;
    };
    fallbackRender: {
        type: PropType<() => any>;
        required: true;
        default: (() => any) | undefined;
    };
    src: {
        type: StringConstructor;
        required: boolean;
    };
    alt: {
        type: StringConstructor;
        default: string;
    };
    title: {
        type: StringConstructor;
        default: string;
    };
    sizes: {
        type: StringConstructor;
        default: string;
    };
    srcset: {
        type: StringConstructor;
        default: string;
    };
    draggable: {
        type: BooleanConstructor;
        default: boolean;
    };
    loading: {
        type: PropType<"lazy" | "eager">;
    };
    crossorigin: {
        type: PropType<"anonymous" | "use-credentials">;
    };
    decoding: {
        type: PropType<"auto" | "sync" | "async">;
    };
    fetchpriority: {
        type: PropType<"auto" | "high" | "low">;
        default: string;
    };
    referrerpolicy: {
        type: PropType<"no-referrer" | "no-referrer-when-downgrade" | "origin" | "origin-when-cross-origin" | "same-origin" | "strict-origin" | "strict-origin-when-cross-origin" | "unsafe-url">;
    };
    preset: {
        type: PropType<import("../../composables").PresetPropValue>;
        default: undefined;
    };
}, {}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
    error: (...args: any[]) => void;
    fallback: (...args: any[]) => void;
    loaded: (...args: any[]) => void;
}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
    ratio: {
        type: PropType<number | "auto">;
        default: string;
        validator: (v: number | 'auto') => boolean;
    };
    fit: {
        type: PropType<"fill" | "none" | "contain" | "cover" | "scale-down">;
        default: string;
    };
    maxWidth: {
        type: (StringConstructor | NumberConstructor)[];
        default: number;
        validator: (v: number | string) => boolean;
    };
    lazy: {
        type: BooleanConstructor;
        default: boolean;
    };
    placeholderSrc: {
        type: StringConstructor;
        default: string;
    };
    onFallback: {
        type: PropType<(...args: any[]) => any>;
        required: true;
        default: ((...args: any[]) => any) | undefined;
    };
    fallbackSrc: {
        type: PropType<string>;
        required: true;
        default: string | undefined;
    };
    fallbackText: {
        type: PropType<string>;
        required: true;
        default: string | undefined;
    };
    fallbackIcon: {
        type: PropType<string>;
        required: true;
        default: string | undefined;
    };
    fallbackRender: {
        type: PropType<() => any>;
        required: true;
        default: (() => any) | undefined;
    };
    src: {
        type: StringConstructor;
        required: boolean;
    };
    alt: {
        type: StringConstructor;
        default: string;
    };
    title: {
        type: StringConstructor;
        default: string;
    };
    sizes: {
        type: StringConstructor;
        default: string;
    };
    srcset: {
        type: StringConstructor;
        default: string;
    };
    draggable: {
        type: BooleanConstructor;
        default: boolean;
    };
    loading: {
        type: PropType<"lazy" | "eager">;
    };
    crossorigin: {
        type: PropType<"anonymous" | "use-credentials">;
    };
    decoding: {
        type: PropType<"auto" | "sync" | "async">;
    };
    fetchpriority: {
        type: PropType<"auto" | "high" | "low">;
        default: string;
    };
    referrerpolicy: {
        type: PropType<"no-referrer" | "no-referrer-when-downgrade" | "origin" | "origin-when-cross-origin" | "same-origin" | "strict-origin" | "strict-origin-when-cross-origin" | "unsafe-url">;
    };
    preset: {
        type: PropType<import("../../composables").PresetPropValue>;
        default: undefined;
    };
}>> & {
    onError?: ((...args: any[]) => any) | undefined;
    onFallback?: ((...args: any[]) => any) | undefined;
    onLoaded?: ((...args: any[]) => any) | undefined;
}, {
    title: string;
    preset: import("../../composables").PresetPropValue;
    ratio: number | "auto";
    maxWidth: string | number;
    onFallback: (...args: any[]) => any;
    fallbackSrc: string;
    fallbackText: string;
    fallbackIcon: string;
    fallbackRender: () => any;
    alt: string;
    lazy: boolean;
    fit: "fill" | "none" | "contain" | "cover" | "scale-down";
    placeholderSrc: string;
    sizes: string;
    srcset: string;
    draggable: boolean;
    fetchpriority: "auto" | "high" | "low";
}, {}>, {
    sources?(_: {}): any;
    default?(_: {}): any;
    error?(_: {}): any;
    loader?(_: {}): any;
    placeholder?(_: {}): any;
}>;
export default _default;
type __VLS_WithTemplateSlots<T, S> = T & {
    new (): {
        $slots: S;
    };
};
