import { PropType } from '@vue/composition-api';
import { CommonDisplayFileProps } from '../interface';
import { TdUploadProps, UploadFile } from '../type';
import { UploadDisplayDragEvents } from '../../common';
import { UploadDragEvents } from '../hooks/useDrag';
export interface ImageFlowListProps extends CommonDisplayFileProps {
    uploadFiles?: (toFiles?: UploadFile[]) => void;
    cancelUpload?: (context: {
        e: MouseEvent;
        file?: UploadFile;
    }) => void;
    dragEvents: UploadDragEvents;
    disabled?: boolean;
    isBatchUpload?: boolean;
    draggable?: boolean;
    showThumbnail?: boolean;
    uploadButton?: TdUploadProps['uploadButton'];
    cancelUploadButton?: TdUploadProps['cancelUploadButton'];
}
declare const _default: import("vue").ComponentOptions<import("vue").default, import("@vue/composition-api").ShallowUnwrapRef<{
    icons: import("tdesign-icons-vue").GlobalIconConfig;
    dragActive: import("@vue/composition-api").Ref<boolean>;
    uploadPrefix: string;
    uploadText: import("@vue/composition-api").ComputedRef<string>;
    innerDragEvents: import("@vue/composition-api").ComputedRef<UploadDisplayDragEvents>;
    currentPreviewFile: import("@vue/composition-api").Ref<{
        [x: string]: any;
        lastModified?: number;
        name?: string;
        percent?: number;
        raw?: {
            readonly lastModified: number;
            readonly name: string;
            readonly webkitRelativePath: string;
            readonly size: number;
            readonly type: string;
            arrayBuffer: () => Promise<ArrayBuffer>;
            slice: (start?: number, end?: number, contentType?: string) => Blob;
            stream: () => ReadableStream<Uint8Array>;
            text: () => Promise<string>;
        };
        response?: {
            [x: string]: any;
        };
        size?: number;
        status?: "progress" | "waiting" | "success" | "fail";
        type?: string;
        uploadTime?: string;
        url?: string;
    }[]>;
    previewIndex: import("@vue/composition-api").Ref<number>;
    onVue2Preview: (params: {
        file: UploadFile;
        index: number;
        e: MouseEvent;
    }) => void;
    browseIconClick: ({ e, index, file, viewFiles, }: {
        e: MouseEvent;
        index: number;
        file: UploadFile;
        viewFiles: UploadFile[];
    }) => void;
    closePreview: () => void;
    previewIndexChange: (index: number) => void;
}> & import("@vue/composition-api").Data, {
    getStatusMap(): {
        iconMap: {
            success: JSX.Element;
            fail: JSX.Element;
            progress: JSX.Element;
            waiting: JSX.Element;
        };
        textMap: {
            success: string;
            fail: string;
            progress: string;
            waiting: string;
        };
    };
    renderEmpty(): JSX.Element;
    renderImgItem(file: UploadFile, index: number): JSX.Element;
    renderStatus(file: UploadFile): JSX.Element;
    renderNormalActionCol(file: UploadFile, index: number): JSX.Element;
    renderBatchActionCol(index: number): JSX.Element;
    renderFileList(): any;
    renderImageList(): any;
    getFileThumbnailIcon(fileType: string): JSX.Element;
    renderFileThumbnail(file: UploadFile): JSX.Element;
}, {}, {
    uploadFiles: PropType<(toFiles?: UploadFile[]) => void>;
    cancelUpload: PropType<(context: {
        e: MouseEvent;
        file?: UploadFile;
    }) => void>;
    dragEvents: PropType<UploadDragEvents>;
    disabled: BooleanConstructor;
    isBatchUpload: BooleanConstructor;
    draggable: BooleanConstructor;
    showThumbnail: BooleanConstructor;
    showImageFileName: BooleanConstructor;
    uploadButton: PropType<import("../../button").TdButtonProps | ((h: import("vue").CreateElement, props: {
        disabled: boolean;
        uploading: boolean;
        uploadFiles: () => void;
        uploadText: string;
    }) => import("vue/types/vnode").ScopedSlotReturnValue)>;
    cancelUploadButton: PropType<import("../../button").TdButtonProps | ((h: import("vue").CreateElement, props: {
        disabled: boolean;
        cancelUploadText: string;
        cancelUpload: (ctx: {
            e: MouseEvent;
        }) => void;
    }) => import("vue/types/vnode").ScopedSlotReturnValue)>;
    accept: StringConstructor;
    files: import("vue").PropType<UploadFile[]>;
    toUploadFiles: import("vue").PropType<UploadFile[]>;
    displayFiles: import("vue").PropType<UploadFile[]>;
    theme: import("vue").PropType<"file" | "custom" | "image" | "file-input" | "file-flow" | "image-flow">;
    abridgeName: import("vue").PropType<number[]>;
    placeholder: StringConstructor;
    classPrefix: StringConstructor;
    tips: (FunctionConstructor | StringConstructor)[];
    status: import("vue").PropType<"error" | "default" | "success" | "warning">;
    locale: import("vue").PropType<import("../..").UploadConfig>;
    sizeOverLimitMessage: StringConstructor;
    autoUpload: BooleanConstructor;
    uploading: BooleanConstructor;
    tipsClasses: import("vue").PropType<string>;
    errorClasses: import("vue").PropType<string[]>;
    placeholderClass: import("vue").PropType<string>;
    showUploadProgress: BooleanConstructor;
    default: import("vue").PropType<(h: import("vue").CreateElement) => import("vue/types/vnode").ScopedSlotReturnValue>;
    fileListDisplay: import("vue").PropType<(h: import("vue").CreateElement, props: {
        files: UploadFile[];
        dragEvents?: UploadDisplayDragEvents;
    }) => import("vue/types/vnode").ScopedSlotReturnValue>;
    onRemove: import("vue").PropType<(p: import("../type").UploadRemoveContext) => void>;
    imageViewerProps: import("vue").PropType<import("../../image-viewer").TdImageViewerProps>;
}, import("@vue/composition-api").ExtractPropTypes<{
    uploadFiles: PropType<(toFiles?: UploadFile[]) => void>;
    cancelUpload: PropType<(context: {
        e: MouseEvent;
        file?: UploadFile;
    }) => void>;
    dragEvents: PropType<UploadDragEvents>;
    disabled: BooleanConstructor;
    isBatchUpload: BooleanConstructor;
    draggable: BooleanConstructor;
    showThumbnail: BooleanConstructor;
    showImageFileName: BooleanConstructor;
    uploadButton: PropType<import("../../button").TdButtonProps | ((h: import("vue").CreateElement, props: {
        disabled: boolean;
        uploading: boolean;
        uploadFiles: () => void;
        uploadText: string;
    }) => import("vue/types/vnode").ScopedSlotReturnValue)>;
    cancelUploadButton: PropType<import("../../button").TdButtonProps | ((h: import("vue").CreateElement, props: {
        disabled: boolean;
        cancelUploadText: string;
        cancelUpload: (ctx: {
            e: MouseEvent;
        }) => void;
    }) => import("vue/types/vnode").ScopedSlotReturnValue)>;
    accept: StringConstructor;
    files: import("vue").PropType<UploadFile[]>;
    toUploadFiles: import("vue").PropType<UploadFile[]>;
    displayFiles: import("vue").PropType<UploadFile[]>;
    theme: import("vue").PropType<"file" | "custom" | "image" | "file-input" | "file-flow" | "image-flow">;
    abridgeName: import("vue").PropType<number[]>;
    placeholder: StringConstructor;
    classPrefix: StringConstructor;
    tips: (FunctionConstructor | StringConstructor)[];
    status: import("vue").PropType<"error" | "default" | "success" | "warning">;
    locale: import("vue").PropType<import("../..").UploadConfig>;
    sizeOverLimitMessage: StringConstructor;
    autoUpload: BooleanConstructor;
    uploading: BooleanConstructor;
    tipsClasses: import("vue").PropType<string>;
    errorClasses: import("vue").PropType<string[]>;
    placeholderClass: import("vue").PropType<string>;
    showUploadProgress: BooleanConstructor;
    default: import("vue").PropType<(h: import("vue").CreateElement) => import("vue/types/vnode").ScopedSlotReturnValue>;
    fileListDisplay: import("vue").PropType<(h: import("vue").CreateElement, props: {
        files: UploadFile[];
        dragEvents?: UploadDisplayDragEvents;
    }) => import("vue/types/vnode").ScopedSlotReturnValue>;
    onRemove: import("vue").PropType<(p: import("../type").UploadRemoveContext) => void>;
    imageViewerProps: import("vue").PropType<import("../../image-viewer").TdImageViewerProps>;
}>> & Omit<import("vue").VueConstructor<import("vue").default>, never> & (new (...args: any[]) => import("@vue/composition-api").ComponentRenderProxy<{
    draggable: boolean;
    disabled: boolean;
    autoUpload: boolean;
    uploading: boolean;
    showUploadProgress: boolean;
    showImageFileName: boolean;
    isBatchUpload: boolean;
    showThumbnail: boolean;
} & {
    default?: (h: import("vue").CreateElement) => import("vue/types/vnode").ScopedSlotReturnValue;
    status?: "error" | "default" | "success" | "warning";
    classPrefix?: string;
    theme?: "file" | "custom" | "image" | "file-input" | "file-flow" | "image-flow";
    tips?: string;
    errorClasses?: string[];
    placeholder?: string;
    onRemove?: (p: import("../type").UploadRemoveContext) => void;
    locale?: unknown;
    files?: UploadFile[];
    abridgeName?: number[];
    cancelUploadButton?: unknown;
    fileListDisplay?: (h: import("vue").CreateElement, props: {
        files: UploadFile[];
        dragEvents?: UploadDisplayDragEvents;
    }) => import("vue/types/vnode").ScopedSlotReturnValue;
    imageViewerProps?: unknown;
    uploadButton?: unknown;
    toUploadFiles?: UploadFile[];
    displayFiles?: UploadFile[];
    tipsClasses?: string;
    placeholderClass?: string;
    accept?: string;
    sizeOverLimitMessage?: string;
    uploadFiles?: (toFiles?: UploadFile[]) => void;
    cancelUpload?: (context: {
        e: MouseEvent;
        file?: UploadFile;
    }) => void;
    dragEvents?: unknown;
}, import("@vue/composition-api").ShallowUnwrapRef<{
    icons: import("tdesign-icons-vue").GlobalIconConfig;
    dragActive: import("@vue/composition-api").Ref<boolean>;
    uploadPrefix: string;
    uploadText: import("@vue/composition-api").ComputedRef<string>;
    innerDragEvents: import("@vue/composition-api").ComputedRef<UploadDisplayDragEvents>;
    currentPreviewFile: import("@vue/composition-api").Ref<{
        [x: string]: any;
        lastModified?: number;
        name?: string;
        percent?: number;
        raw?: {
            readonly lastModified: number;
            readonly name: string;
            readonly webkitRelativePath: string;
            readonly size: number;
            readonly type: string;
            arrayBuffer: () => Promise<ArrayBuffer>;
            slice: (start?: number, end?: number, contentType?: string) => Blob;
            stream: () => ReadableStream<Uint8Array>;
            text: () => Promise<string>;
        };
        response?: {
            [x: string]: any;
        };
        size?: number;
        status?: "progress" | "waiting" | "success" | "fail";
        type?: string;
        uploadTime?: string;
        url?: string;
    }[]>;
    previewIndex: import("@vue/composition-api").Ref<number>;
    onVue2Preview: (params: {
        file: UploadFile;
        index: number;
        e: MouseEvent;
    }) => void;
    browseIconClick: ({ e, index, file, viewFiles, }: {
        e: MouseEvent;
        index: number;
        file: UploadFile;
        viewFiles: UploadFile[];
    }) => void;
    closePreview: () => void;
    previewIndexChange: (index: number) => void;
}>, import("@vue/composition-api").Data, {}, {
    getStatusMap(): {
        iconMap: {
            success: JSX.Element;
            fail: JSX.Element;
            progress: JSX.Element;
            waiting: JSX.Element;
        };
        textMap: {
            success: string;
            fail: string;
            progress: string;
            waiting: string;
        };
    };
    renderEmpty(): JSX.Element;
    renderImgItem(file: UploadFile, index: number): JSX.Element;
    renderStatus(file: UploadFile): JSX.Element;
    renderNormalActionCol(file: UploadFile, index: number): JSX.Element;
    renderBatchActionCol(index: number): JSX.Element;
    renderFileList(): any;
    renderImageList(): any;
    getFileThumbnailIcon(fileType: string): JSX.Element;
    renderFileThumbnail(file: UploadFile): JSX.Element;
}, {}, {}, {}, {
    draggable: boolean;
    disabled: boolean;
    autoUpload: boolean;
    uploading: boolean;
    showUploadProgress: boolean;
    showImageFileName: boolean;
    isBatchUpload: boolean;
    showThumbnail: boolean;
} & {
    default?: (h: import("vue").CreateElement) => import("vue/types/vnode").ScopedSlotReturnValue;
    status?: "error" | "default" | "success" | "warning";
    classPrefix?: string;
    theme?: "file" | "custom" | "image" | "file-input" | "file-flow" | "image-flow";
    tips?: string;
    errorClasses?: string[];
    placeholder?: string;
    onRemove?: (p: import("../type").UploadRemoveContext) => void;
    locale?: unknown;
    files?: UploadFile[];
    abridgeName?: number[];
    cancelUploadButton?: unknown;
    fileListDisplay?: (h: import("vue").CreateElement, props: {
        files: UploadFile[];
        dragEvents?: UploadDisplayDragEvents;
    }) => import("vue/types/vnode").ScopedSlotReturnValue;
    imageViewerProps?: unknown;
    uploadButton?: unknown;
    toUploadFiles?: UploadFile[];
    displayFiles?: UploadFile[];
    tipsClasses?: string;
    placeholderClass?: string;
    accept?: string;
    sizeOverLimitMessage?: string;
    uploadFiles?: (toFiles?: UploadFile[]) => void;
    cancelUpload?: (context: {
        e: MouseEvent;
        file?: UploadFile;
    }) => void;
    dragEvents?: unknown;
}, {
    draggable: boolean;
    disabled: boolean;
    autoUpload: boolean;
    uploading: boolean;
    showUploadProgress: boolean;
    showImageFileName: boolean;
    isBatchUpload: boolean;
    showThumbnail: boolean;
}, true>);
export default _default;
