/**
 * 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 { ReactNode } from 'react';
export interface CollectionTemplateFieldOption {
    label: ReactNode;
    value: string | number | boolean;
    [key: string]: unknown;
}
export interface CollectionTemplateField {
    name: string;
    interface?: string;
    type?: string;
    title?: ReactNode;
    options?: CollectionTemplateFieldOption[];
    component?: string;
    componentProps?: Record<string, unknown>;
    uiSchema?: Record<string, unknown>;
    [key: string]: unknown;
}
interface FieldInterfaceConfigureLike {
    default?: {
        uiSchema?: Record<string, unknown>;
        [key: string]: unknown;
    };
}
interface FieldInterfaceLike {
    default?: {
        uiSchema?: Record<string, unknown>;
        [key: string]: unknown;
    };
}
export interface CollectionTemplateFieldNormalizeManager {
    getFieldInterfaceConfigure?: (name: string, collectionInfo?: Record<string, unknown>) => FieldInterfaceConfigureLike | undefined;
    getFieldInterface?: (name: string) => FieldInterfaceLike | undefined;
}
export interface NormalizeCollectionTemplateFieldOptions {
    collectionInfo?: Record<string, unknown>;
}
export declare function normalizeCollectionTemplateField(field: CollectionTemplateField, manager?: CollectionTemplateFieldNormalizeManager, options?: NormalizeCollectionTemplateFieldOptions): {
    [key: string]: unknown;
    uiSchema?: Record<string, unknown>;
} & CollectionTemplateField;
export declare function normalizeCollectionTemplateFields(fields?: CollectionTemplateField[], manager?: CollectionTemplateFieldNormalizeManager, options?: NormalizeCollectionTemplateFieldOptions): ({
    [key: string]: unknown;
    uiSchema?: Record<string, unknown>;
} & CollectionTemplateField)[];
export {};
