import { ILinkGetter } from './models';

declare const _default: <T extends object>(__VLS_props: {
    image: T;
    readonly?: boolean;
    expanded?: boolean;
    onDelete?: () => any;
    onZoom_out?: () => any;
    "onChange-image"?: (file: File) => any;
    hideReplace?: boolean;
    getPreviewLink: ILinkGetter<T>;
    getDownloadLink: ILinkGetter<T>;
    getAltText?: ILinkGetter<T>;
    previewPrefix?: string;
} & import('vue').VNodeProps & import('vue').AllowedComponentProps & import('vue').ComponentCustomProps, __VLS_ctx?: {
    slots: Readonly<{
        default: (props: {
            item: T;
        }) => void;
        details: (props: {
            item: T;
        }) => void;
    }> & {
        default: (props: {
            item: T;
        }) => void;
        details: (props: {
            item: T;
        }) => void;
    };
    attrs: any;
    emit: {
        (event: "zoom_out"): void;
        (event: "delete"): void;
        (event: "change-image", file: File): void;
    };
}, __VLS_expose?: (exposed: import('vue').ShallowUnwrapRef<{}>) => void, __VLS_setup?: Promise<{
    props: {
        image: T;
        readonly?: boolean;
        expanded?: boolean;
        onDelete?: () => any;
        onZoom_out?: () => any;
        "onChange-image"?: (file: File) => any;
        hideReplace?: boolean;
        getPreviewLink: ILinkGetter<T>;
        getDownloadLink: ILinkGetter<T>;
        getAltText?: ILinkGetter<T>;
        previewPrefix?: string;
    } & import('vue').VNodeProps & import('vue').AllowedComponentProps & import('vue').ComponentCustomProps;
    expose(exposed: import('vue').ShallowUnwrapRef<{}>): void;
    attrs: any;
    slots: Readonly<{
        default: (props: {
            item: T;
        }) => void;
        details: (props: {
            item: T;
        }) => void;
    }> & {
        default: (props: {
            item: T;
        }) => void;
        details: (props: {
            item: T;
        }) => void;
    };
    emit: {
        (event: "zoom_out"): void;
        (event: "delete"): void;
        (event: "change-image", file: File): void;
    };
}>) => import('vue').VNode<import('vue').RendererNode, import('vue').RendererElement, {
    [key: string]: any;
}> & {
    __ctx?: {
        props: {
            image: T;
            readonly?: boolean;
            expanded?: boolean;
            onDelete?: () => any;
            onZoom_out?: () => any;
            "onChange-image"?: (file: File) => any;
            hideReplace?: boolean;
            getPreviewLink: ILinkGetter<T>;
            getDownloadLink: ILinkGetter<T>;
            getAltText?: ILinkGetter<T>;
            previewPrefix?: string;
        } & import('vue').VNodeProps & import('vue').AllowedComponentProps & import('vue').ComponentCustomProps;
        expose(exposed: import('vue').ShallowUnwrapRef<{}>): void;
        attrs: any;
        slots: Readonly<{
            default: (props: {
                item: T;
            }) => void;
            details: (props: {
                item: T;
            }) => void;
        }> & {
            default: (props: {
                item: T;
            }) => void;
            details: (props: {
                item: T;
            }) => void;
        };
        emit: {
            (event: "zoom_out"): void;
            (event: "delete"): void;
            (event: "change-image", file: File): void;
        };
    };
};
export default _default;
type __VLS_Prettify<T> = {
    [K in keyof T]: T[K];
} & {};
