/**
 * This file is part of the NocoBase (R) project.
 * Copyright (c) 2020-2024 NocoBase Co., Ltd.
 * Authors: NocoBase Team.
 *
 * This project is dual-licensed under AGPL-3.0 and NocoBase Commercial License.
 * For more information, please refer to: https://www.nocobase.com/agreement.
 */
interface UploadFieldFile {
    uid?: string;
    id?: number | string;
    url?: string;
    filename?: string;
    name?: string;
    thumbUrl?: string;
    response?: UploadFieldFile;
}
/**
 * 判断上传字段是否继续展示追加入口。
 *
 * 单值文件关系在已有文件后应隐藏“上传”和“选择”入口，多值字段允许继续追加。
 *
 * @param multiple 是否多值
 * @param fileCount 当前文件数量
 * @returns 是否显示追加入口
 * @example
 * ```typescript
 * shouldShowUploadActionSlot(false, 1);
 * ```
 */
export declare const shouldShowUploadActionSlot: (multiple: boolean | undefined, fileCount: number) => boolean;
/**
 * 规范化上传字段文件列表，并尽量复用上一轮 uid，避免列表项重挂载。
 *
 * @param data 当前外部值或上传组件返回的文件列表
 * @param previousFileList 上一轮渲染中的文件列表
 * @returns 规范化后的文件列表
 * @example
 * ```typescript
 * normalizeUploadFieldFileList([{ id: 1, url: '/1.png' }], [{ uid: 'u1', response: { id: 1 } }]);
 * ```
 */
export declare const normalizeUploadFieldFileList: (data: UploadFieldFile[], previousFileList?: UploadFieldFile[]) => {
    uid: string;
    thumbUrl: string;
    id?: number | string;
    url?: string;
    filename?: string;
    name?: string;
    response?: UploadFieldFile;
}[];
/**
 * 根据当前文件列表解析预览索引，避免把非数字 uid 强转成 NaN。
 *
 * @param fileList 当前文件列表
 * @param targetFile 当前预览文件
 * @returns 预览索引
 * @example
 * ```typescript
 * getUploadFieldPreviewIndex([{ uid: 'id:1' }], { uid: 'id:1' });
 * ```
 */
export declare const getUploadFieldPreviewIndex: (fileList: UploadFieldFile[], targetFile: UploadFieldFile) => number;
export {};
