import { ILinkGetter } from './models';

declare const _default: <T extends {
    id: number | string;
}>(__VLS_props: {
    modelValue: T[];
    readonly?: boolean;
    onCreate?: () => any;
    canRemove?: boolean;
    hideReplace?: boolean;
    getPreviewLink?: ILinkGetter<T>;
    getDownloadLink?: ILinkGetter<T>;
    getAltText?: ILinkGetter<T>;
    previewPrefix?: string;
    onReplace?: (value: {
        oldImage: T;
        file: File;
    }) => any;
    onRemove?: (value: {
        image: T;
        index: number;
    }) => any;
    removeApi?: (fileId: number | string) => Promise<unknown>;
    addImage?: () => T;
} & import('vue').VNodeProps & import('vue').AllowedComponentProps & import('vue').ComponentCustomProps, __VLS_ctx?: {
    slots: Readonly<{
        editor?: (props: {
            item: T;
        }) => void;
        details?: (props: {
            item: T;
        }) => void;
    }> & {
        editor?: (props: {
            item: T;
        }) => void;
        details?: (props: {
            item: T;
        }) => void;
    };
    attrs: any;
    emit: {
        (event: "create"): void;
        (event: "replace", value: {
            oldImage: T;
            file: File;
        }): void;
        (event: "remove", value: {
            image: T;
            index: number;
        }): void;
    };
}, __VLS_expose?: (exposed: import('vue').ShallowUnwrapRef<{}>) => void, __VLS_setup?: Promise<{
    props: {
        modelValue: T[];
        readonly?: boolean;
        onCreate?: () => any;
        canRemove?: boolean;
        hideReplace?: boolean;
        getPreviewLink?: ILinkGetter<T>;
        getDownloadLink?: ILinkGetter<T>;
        getAltText?: ILinkGetter<T>;
        previewPrefix?: string;
        onReplace?: (value: {
            oldImage: T;
            file: File;
        }) => any;
        onRemove?: (value: {
            image: T;
            index: number;
        }) => any;
        removeApi?: (fileId: number | string) => Promise<unknown>;
        addImage?: () => T;
    } & import('vue').VNodeProps & import('vue').AllowedComponentProps & import('vue').ComponentCustomProps;
    expose(exposed: import('vue').ShallowUnwrapRef<{}>): void;
    attrs: any;
    slots: Readonly<{
        editor?: (props: {
            item: T;
        }) => void;
        details?: (props: {
            item: T;
        }) => void;
    }> & {
        editor?: (props: {
            item: T;
        }) => void;
        details?: (props: {
            item: T;
        }) => void;
    };
    emit: {
        (event: "create"): void;
        (event: "replace", value: {
            oldImage: T;
            file: File;
        }): void;
        (event: "remove", value: {
            image: T;
            index: number;
        }): void;
    };
}>) => import('vue').VNode<import('vue').RendererNode, import('vue').RendererElement, {
    [key: string]: any;
}> & {
    __ctx?: {
        props: {
            modelValue: T[];
            readonly?: boolean;
            onCreate?: () => any;
            canRemove?: boolean;
            hideReplace?: boolean;
            getPreviewLink?: ILinkGetter<T>;
            getDownloadLink?: ILinkGetter<T>;
            getAltText?: ILinkGetter<T>;
            previewPrefix?: string;
            onReplace?: (value: {
                oldImage: T;
                file: File;
            }) => any;
            onRemove?: (value: {
                image: T;
                index: number;
            }) => any;
            removeApi?: (fileId: number | string) => Promise<unknown>;
            addImage?: () => T;
        } & import('vue').VNodeProps & import('vue').AllowedComponentProps & import('vue').ComponentCustomProps;
        expose(exposed: import('vue').ShallowUnwrapRef<{}>): void;
        attrs: any;
        slots: Readonly<{
            editor?: (props: {
                item: T;
            }) => void;
            details?: (props: {
                item: T;
            }) => void;
        }> & {
            editor?: (props: {
                item: T;
            }) => void;
            details?: (props: {
                item: T;
            }) => void;
        };
        emit: {
            (event: "create"): void;
            (event: "replace", value: {
                oldImage: T;
                file: File;
            }): void;
            (event: "remove", value: {
                image: T;
                index: number;
            }): void;
        };
    };
};
export default _default;
