/**
 * 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.
 */
import type { ISchema } from '@formily/react';
import type { FieldOptions } from '../types';
import type { Application } from '../../application';
import type { CollectionOptions, Collection } from '../../data-source/collection/Collection';
export interface ICollectionTemplate {
    name: string;
    Collection?: typeof Collection;
    transform?: (collection: CollectionOptions, app: Application) => CollectionOptions;
    title?: string;
    color?: string;
    /** 排序 */
    order?: number;
    /** 默认配置 */
    default?: CollectionDefaultOptions;
    events?: any;
    /** UI 可配置的 CollectionOptions 参数（添加或编辑的 Collection 表单的字段） */
    configurableProperties?: Record<string, ISchema>;
    /** 当前模板可用的字段类型 */
    availableFieldInterfaces?: AvailableFieldInterfacesInclude | AvailableFieldInterfacesExclude;
    /** 是否分割线 */
    divider?: boolean;
    /** 模板描述 */
    description?: string;
    /**配置字段中的操作按钮 */
    configureActions?: Record<string, ISchema>;
    forbidDeletion?: boolean;
}
interface AvailableFieldInterfacesInclude {
    include?: any[];
}
interface AvailableFieldInterfacesExclude {
    exclude?: any[];
}
interface CollectionDefaultOptions {
    /**
     * 自动生成 id
     * @default true
     * */
    autoGenId?: boolean;
    /** 创建人 */
    createdBy?: boolean;
    /** 最后更新人 */
    updatedBy?: boolean;
    /** 创建日期 */
    createdAt?: boolean;
    /** 更新日期 */
    updatedAt?: boolean;
    /** 可排序 */
    sortable?: boolean;
    tree?: string;
    logging?: boolean;
    /** 继承 */
    inherits?: string | string[];
    fields?: FieldOptions[];
    [key: string]: any;
}
export {};
